httpwebrequest、httpwebresponse 不太工作
我有一个 Windows 窗体应用程序,用于登录网站并检索网页的内容(html 代码)。
我从 Windows 窗体应用程序更改了代码,使其能够与 .aspx 页面一起使用,但我遇到了问题。下面的字符串 (thepage) 中没有保存任何内容:
private void button1_Click(object sender, EventArgs e)
{
string postData = "bla bla bla...";
CookieContainer tempCookies = new CookieContainer();
UTF8Encoding encoding = new UTF8Encoding();
byte[] byteData = encoding.GetBytes(postData);
HttpWebRequest postReq = (HttpWebRequest)WebRequest.Create("http://bla bla bla...php");
postReq.Method = "POST";
postReq.KeepAlive = true;
postReq.CookieContainer = tempCookies;
postReq.ContentType = "application/x-www-form-urlencoded";
postReq.Referer = "http://bla bla bla...php";
postReq.UserAgent = "Opera/9.80 (Windows NT 6.1; U; en-GB) Presto/2.9.168 Version/11.52";
postReq.ContentLength = byteData.Length;
Stream postreqstream = postReq.GetRequestStream();
postreqstream.Write(byteData, 0, byteData.Length);
postreqstream.Close();
HttpWebResponse postresponse = default(HttpWebResponse);
postresponse = (HttpWebResponse)postReq.GetResponse();
tempCookies.Add(postresponse.Cookies);
logincookie = tempCookies;
StreamReader postreqreader = new StreamReader(postresponse.GetResponseStream());
string thepage = postreqreader.ReadToEnd();
TextBox1.Text = thepage;
表单应用程序工作正常,但 .aspx 却不行。不知道为什么。请帮我解决这个问题。谢谢。
I have a windows form application which serves to login to a website and retrieve the content (html code) of a webpage.
I change my code from windows form application to make it work with an .aspx page, but I have problems. Nothing gets saved in the string (thepage) below:
private void button1_Click(object sender, EventArgs e)
{
string postData = "bla bla bla...";
CookieContainer tempCookies = new CookieContainer();
UTF8Encoding encoding = new UTF8Encoding();
byte[] byteData = encoding.GetBytes(postData);
HttpWebRequest postReq = (HttpWebRequest)WebRequest.Create("http://bla bla bla...php");
postReq.Method = "POST";
postReq.KeepAlive = true;
postReq.CookieContainer = tempCookies;
postReq.ContentType = "application/x-www-form-urlencoded";
postReq.Referer = "http://bla bla bla...php";
postReq.UserAgent = "Opera/9.80 (Windows NT 6.1; U; en-GB) Presto/2.9.168 Version/11.52";
postReq.ContentLength = byteData.Length;
Stream postreqstream = postReq.GetRequestStream();
postreqstream.Write(byteData, 0, byteData.Length);
postreqstream.Close();
HttpWebResponse postresponse = default(HttpWebResponse);
postresponse = (HttpWebResponse)postReq.GetResponse();
tempCookies.Add(postresponse.Cookies);
logincookie = tempCookies;
StreamReader postreqreader = new StreamReader(postresponse.GetResponseStream());
string thepage = postreqreader.ReadToEnd();
TextBox1.Text = thepage;
The form application works fine, but the .aspx does not. Have no idea why. Please, help me with that. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在这里,在黑暗中拍摄,但尝试
如果失败,您可以随时打开 Fiddler 或 FireBug 来查看来回发送的请求和响应。也许您会发现随请求一起发送的数据不是您所期望的?
Shot in the dark, here, but try
Failing that, you could always open up Fiddler or FireBug to see the request and response being sent back and forth. Maybe you'll see that the data you are sending along with the request isn't what you expect it to be?