1

我有一个 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 个字符左右,没有明显的原因。调试器显示字符串按预期返回,但不知何故没有正确写入。

那么如何让它提交完整的字符串呢?

4

2 回答 2

0

好的,我解决了这个问题。我没有关闭 requestWriter。

于 2013-02-14T16:47:24.663 回答
0

请求大小通常有限制 - 看看HTTP GET 请求的最大长度?

您似乎遇到了浏览器问题,而不是服务器问题。您可以使用命令行工具(例如 wget 之类的工具)发出请求,以验证它不是服务器的问题吗?

您也可以尝试不同的浏览器,它可能有不同的限制。

于 2013-02-14T16:49:17.160 回答