我有一个Web服务正在对aspx网站进行一些屏幕抓取。
我可以让它成功登录,但是当我提交请求时,它会返回服务器错误。当我用Fiddler检查它时,它显示内容(查询字符串)被截断,因此并非所有提交。内容超过3600个字符。 (不是我的选择,它只是网站的创建方式和期望。)
HttpWebRequest webRequest = WebRequest.Create(REQUESTUSAGE) as HttpWebRequest;
webRequest.CookieContainer = this.Cookies;
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write(GetPostDataForRequest());
WebResponse response = null;
try
{
response = webRequest.GetResponse();
}
catch (Exception ex)
{}
GetPostDataForRequest返回内容,但就像我说的那样,Fiddler显示它缺少最后600个字符,因为没有明显的原因。调试器显示字符串按预期返回,但不知何故它没有正确写入。
那么如何让它提交完整的字符串?
答案 0 :(得分:0)
好的,我解决了这个问题。我没有关闭requestWriter。
答案 1 :(得分:0)
请求大小通常有限制 - 请查看maximum length of HTTP GET request?
您似乎遇到了浏览器问题,而不是服务器问题。您是否可以使用命令行工具(例如wget)发出请求以验证服务器是否存在问题?
您也可以尝试使用其他浏览器,这些浏览器可能有不同的限制。