2015-02-27 4 views
0

Отправка файла cookie, полученного из httpwebrequest, не дает правильного результата, однако, если я скопирую значение cookie cookie из cookie браузера, чем он возвращает правильный результат. почему я не получаю результат от httpwebrequest, но отлично работает с браузером?Обработка HttpWebRequest и Cookie

CookieContainer cookieContainer = new CookieContainer(); 

var targetUri = new Uri("URL1"); 
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(targetUri); 
myHttpWebRequest.Method = "GET"; 
myHttpWebRequest.CookieContainer = cookieContainer; 

//Get Response 
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 

//Create Request 
targetUri = new Uri("URL2"); 
myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(targetUri); 
myHttpWebRequest.Method = "GET"; 
myHttpWebRequest.CookieContainer = cookieContainer; 

//Get Response 
myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 

using (StreamReader reader = new StreamReader(myHttpWebResponse.GetResponseStream())) 
{ 
    string html = reader.ReadToEnd(); 
} 

Ниже второй запрос (URL2) Скрипач с куки, полученные с помощью первого запроса (url1):

Request: 
GET URL2 
HTTP/1.1 
Host: www.xyz.com 
Cookie: JSESSIONID=Mn7qJwrRnxLn1NNfT1PNr1L2Gr2KCkfFVCRS1wfsT4zfzWJhT62J!-876337174 

Response: 
HTTP/1.1 200 OK 
Date: Fri, 27 Feb 2015 13:03:52 GMT 
Content-Length: 13 
Content-Type: text/html;charset=UTF-8 
X-Powered-By: Servlet/2.5 JSP/2.1 

Теперь, если я копировать вставить первый URL (URL1) в браузере и использовать значение куки из браузера то он возвращает правильный результат:

Request: 

GET URL2 
HTTP/1.1 
Host: www.xyz.com 
Cookie: JSESSIONID=PPPHJwmKQNh2ykVXytlcfTDH2YWNbtv76vPBzZTG3Dfdm9Mx0J74!-876337174 

Response: 
HTTP/1.1 200 OK 
Date: Fri, 27 Feb 2015 13:06:15 GMT 
Content-Type: text/html;charset=UTF-8 
X-Powered-By: Servlet/2.5 JSP/2.1 
Content-Length: 21417 

ответ

0

Weblogic возвращается печенье в ответ, и вы должны отправить его обратно в следующем запросе.

cookieContainer.Add(response.Cookies); 

(Ваш контейнер cookie находится на вашей машине и пуст).

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