2015-02-04 3 views
0

Я пытаюсь подключиться к веб-серверу с помощью HttpWebRequest и получить некоторые данные. Мне удалось связаться с помощью следующего кода:HttpWebRequest получить неверные данные

HttpWebRequest req= (HttpWebRequest)WebRequest.Create("https://www.companyabc.com/security?action=authenticate"); 
    req.CookieContainer = new CookieContainer(); 
    req.CookieContainer.Add(new Uri("https://www.companyabc.com"), new CookieCollection()); 
    string postData = "account_id=xxxx&password=xxxx"; 
    req.KeepAlive = true; 

    byte[] send = Encoding.Default.GetBytes(postData); 

    req.Method = "POST"; 
    req.ContentType = "application/x-www-form-urlencoded"; 
    req.ContentLength = send.Length; 
    req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0"; 

    Stream sout = req.GetRequestStream(); 
    sout.Write(send, 0, send.Length); 
    sout.Flush(); 
    sout.Close(); 

    HttpWebResponse res = (HttpWebResponse)req.GetResponse(); 

Чтобы получить данные, я использую:

CookieContainer cookieJar = req.CookieContainer; 
    foreach (Cookie cookie in res.Cookies) 
    { 
     cookieJar.Add(cookie); 
    } 
    req = (HttpWebRequest)WebRequest.Create("https://www.companyabc.com/inside?action=displayHierarchyList&hierarchyId=157259&hierarchyLevel=2&selectedIndexMarket=157259&showPrices=false&hLevel=group&random=1423017429960"); 
    req.Method = "GET"; 
    req.ContentType = "application/json"; 
    req.CookieContainer = cookieJar; 
    req.AllowAutoRedirect = false; 

    res = (HttpWebResponse)req.GetResponse(); 

    Stream dataStream = res.GetResponseStream(); 
    StreamReader reader = new StreamReader(dataStream); 
    // Read the content. 
    string responseFromServer = reader.ReadToEnd(); 

Если я войти, используя веб-браузер и введите URL: https://www.companyabc.com/inside?action=displayHierarchyList&hierarchyId=157259&hierarchyLevel=2&selectedIndexMarket=157259&showPrices=false&hLevel=group&random=1423017429960

Я получаю следующая информация в формате Json:

{ "group" : [ { "id" : "159099", "name" : "Item1" }, { "id" : 
    "158028", "name" : "Item2" }, { "id" : "159097", "name" : "Item2" }, { 
    "id" : "158284", "name" : "Item4" }, { "id" : "157266", "name" : 
    "Item5" }, { "id" : "158282", "name" : "Item6" }, { "id" : "157280", 
    "name" : "Item7" }, { "id" : "157260", "name" : "Item8" }, { "id" : 
    "157274", "name" : "Item9" }, { "id" : "157276", "name" : "Item10" } 
]} 

Когда я использую HttpWebRequest I получите следующее:

Извините. Произошла непредвиденная ошибка. Выйдите из системы, закройте все окна обозревателя и повторите попытку.

Я пробовал много вещей уже без везения, ваша помощь будет действительно оценена.

спасибо.

ответ

0

Мне удалось найти проблему. С помощью скрипача я смог заметить, что в ответе от первого запроса была ссылка, перед отправкой запроса на данные я сделал запрос на эту ссылку и добавил, что некоторые файлы cookie нуждаются в ней для запроса Работа. Спасибо.

Смежные вопросы