c를 내가 다음 코드를 사용하여 가져 오기 요청을 만드는 중이라서에서 다음과 같이이 후의 HttpWebRequest #
TheRequest = (HttpWebRequest)WebRequest.Create(aURL);
TheRequest.Method = "GET";
TheRequest.CookieContainer = TheCookies;
TheRequest.UserAgent = GetUserAgent();
TheRequest.KeepAlive = false;
TheRequest.Timeout = 20000;
TheRequest.ReadWriteTimeout = 20000;
TheRequest.AllowAutoRedirect = true;
TheRequest.Headers.Add("Accept-Language", "en-us");
TheResponse = (HttpWebResponse)TheRequest.GetResponse();
TheResponseString = new StreamReader(TheResponse.GetResponseStream(), Encoding.ASCII).ReadToEnd();
을 나는 쿠키를 가지고 :
이string theCookieHeader = TheResponse.Headers[HttpResponseHeader.SetCookie];
그럼 내가 적절한 쿠키 형식으로 문자열을 처리 다음 POST 요청에서 그것을 제공하기 위해 쿠키 컨테이너에 넣으십시오. 응답 문자열 (TheResponseString)에서 적절한 Post 데이터와 cookiecontainer의 쿠키를 만듭니다.
다음과 같이 POST 요청에 대한 내 코드입니다 : 당신이 다음 아무것도 의심하는 경우
가 TheRequest = (HttpWebRequest)WebRequest.Create(aURL);
TheRequest.Method = "POST";
TheRequest.CookieContainer = TheCookies;
TheRequest.UserAgent = GetUserAgent();
TheRequest.KeepAlive = false;
TheRequest.Timeout = 20000;
TheRequest.ReadWriteTimeout = 20000;
TheRequest.AllowAutoRedirect = true;
TheRequest.ContentType = "application/x-www-form-urlencoded";
TheRequest.Headers.Add("Accept-Language", "en-us");
byte[] bytes = Encoding.ASCII.GetBytes(aPostDataString);
TheRequest.ContentLength = bytes.Length;
Stream oStreamOut = TheRequest.GetRequestStream();
oStreamOut.Write(bytes,0,bytes.Length);
oStreamOut.Close();
TheResponse = (HttpWebResponse)TheRequest.GetResponse();
TheResponseString = new StreamReader(TheResponse.GetResponseStream(), Encoding.ASCII).ReadToEnd();
이제 문제는 나는 그들이 같은 모든 일을 가지고, 그들은 파트너 웹 사이트입니다, 두 개의 웹 사이트를 가지고있다 (그것은 보이지만하십시오 나에게 말해라.) 그러나 하나의 웹 사이트에 대해 그것은 잘 작동하고 다른 하나는 웹 사이트 오류 페이지의 응답 문자열을 제공한다.
문제 진단에 대한 도움을주십시오.
두 번째 쿠키에 다른 쿠키를 제공해야합니다. 같은 웹 사이트이지만 다른 하위 도메인 인 경우에도 때때로 다른 쿠키를 제공해야합니다. –
오류가 발생하는 경우 사이트에서 로그를 살펴 봐야합니다. 왜 * 오류가 발생하는지. –
@JonSkeet 난 그가 접근 할 수없는 웹 사이트에 연결하려고하는 것 같아, 리 요청에 대해 btw :) 나는 SkeetNotifier를 설치했다, 너무 귀엽다! –