更新:https URIにデータをPOSTしようとしています。 POSTは、HTTPのために動作しますが、それはHTTPS URIC#でのHTTPS POST、Winforms(ストリームライター、HttpWebResponse、HttpWebRequest)
ためこんにちは、私はウェブサイトにデータを投稿するexeファイルのC#のWinFormsを作成しています失敗しました。コードは以下の通りです。問題は、ストリームが私のポストデータを複製し、..です
例えば:私は、この投稿したいと - 、私は実際に送られているもののトラフィックを、チェックするとき次に>username=bob
をusername=bobusername=bob
参照してください。 ?これは重複し、同じ行をもう一度バッファの最後に追加して送信します。
私は2日から問題を見つけようとしています。体はこれを解決できますか、いくつかのヒントを教えてください。 ..あなたに感謝
(コンテンツ長が正しく12に設定し、それはバッファの末尾にもう一度同じデータを付加した後、24のバイトを送信している)
はヘッダがあります
POST /login/ HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Host: abc.test.com
Content-Length: 12
username=bobusername=bob
-
この私が行byte[] postBytes = Encoding.ASCII.GetBytes(post_data);
にブレークポイントを置くとpostBytes
は正しいデータが含まれている...しかし、それ私は現在
string post_data = "username=bob";
string uri = "https://abc.test.com/login/";
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(uri);
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "POST";
byte[] postBytes = Encoding.ASCII.GetBytes(post_data);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postBytes.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postBytes, 0, postBytes.Length);
MessageBox.Show(postBytes.Length.ToString());
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
string tmp = sr.ReadToEnd().Trim();
を使用していたコードです出力を2回取得します。
どうしてですか?私は明確であることを願っています。
こんにちは、私は時間と助けてくれてありがとう。私はWebレスポンスを閉じようとしました。しかし、それはまだ重複を送信します。はい、何かが間違っている何か... –