更新:我試圖POST數據到https URI。該POST適用於HTTP,但它不能用於HTTPS URIHTTPS POST在C#,Winforms(流編寫器,HttpWebResponse,HttpWebRequest)
你好我創建一個C#的WinForms exe文件將數據發佈到網站。代碼如下。問題是,流複製我的職務數據..
例如:假設我要發佈此 - 當我檢查了交通,什麼是實際發送是>username=bob
然後,username=bobusername=bob
見?它重複,它再次將相同的行添加到緩衝區的末尾併發送它。
我瘋了試圖從兩天內找到問題..任何機構可以解決這個問題或給我一些提示嗎?謝謝..
(內容長度被正確地設置爲12,但它再次發送24個字節,附加相同的數據後,緩衝器的尾部)
有頭
POST /login/ HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Host: abc.test.com
Content-Length: 12
username=bobusername=bob
-
這是我目前使用的
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();
我把一個斷點上線byte[] postBytes = Encoding.ASCII.GetBytes(post_data);
和postBytes
包含正確數據的代碼...但它獲得兩次輸出。
這是怎麼發生的?我希望我很清楚..
hi jiaji wu,謝謝你的時間和幫助。我試圖關閉webresponse。但它仍然發送重複。是的,有些東西是錯誤的其他.. – 2012-03-17 07:36:28