1

aspxWebサイトの画面スクレイピングを実行しているWebサービスがあります。

正常にログインできますが、リクエストを送信するとサーバーエラーが返されます。Fiddlerでチェックアウトすると、コンテンツ(クエリ文字列)が切り捨てられているため、すべてが送信されていないことがわかります。内容は3600文字を超えるかなり長いです。(私の選択ではありません。それは、Webサイトが作成された方法であり、それが期待するものです。)

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

OK、これで解決しました。私はrequestWriterを閉じていませんでした。

于 2013-02-14T16:47:24.663 に答える
0

通常、リクエスト サイズには制限があります。HTTP GET リクエストの最大長をご覧ください。

サーバーの問題ではなく、ブラウザの問題が発生しているようです。サーバーに問題がないことを確認するために、コマンド ライン ツール (wget など) を使用して要求を発行できますか?

制限が異なる場合がある別のブラウザーを試すこともできます。

于 2013-02-14T16:49:17.160 に答える