2012-11-11 57 views
3

此代碼使用Web客戶端通過HTTPS發送請求 - POST日期加倍

 using (WebClient webClient = new WebClient()) 
     { 
      string address = "https://www.any.com/name.htm"; 
      byte[] postData = Encoding.ASCII.GetBytes("login=123"); 
      webClient.Headers[HttpRequestHeader.Accept] = "text/html, application/xhtml+xml, */*"; 
      webClient.Headers[HttpRequestHeader.AcceptLanguage] = "ru-RU"; 
      webClient.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"; 
      webClient.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate"; 
      webClient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; 
      webClient.UploadData(address, postData); 
     } 

產生該請求(POSTDATA加倍):

POST /name.htm HTTP/1.1 
Accept-Language: ru-RU 
Accept-Encoding: gzip, deflate 
Accept: text/html, application/xhtml+xml, */* 
Content-Type: application/x-www-form-urlencoded 
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 
Host: [url]www.any.com[/url] 
Content-Length: 9 
Connection: Keep-Alive 

login=123login=123 

如果更改

string address = "https://www.any.com/name.htm" 

string address = "http://www.any.com/name.htm" 

然後數據不會加倍。

HTTPS發送請求時如何避免數據翻倍?

+1

我剛剛通過一個使用Fiddler2的測試來運行它,它沒有重複數據。聽起來這個問題在別的地方。 – Hardrada

+0

我看到了HttpAnalizer6的請求體。可能是這個是HttpAnalizer的bug ... – meng

+1

這是可能的。你可以嘗試Fiddler2,看看結果是什麼比較。 – Hardrada

回答

0

這是HttpAnalizer的bug。

非常感謝Hardrada。

+0

如何在我上面的評論upvote :) – Hardrada

+0

@Hardrada會發布答案,並獲得聲譽? – Tearsdontfalls

+0

的答案和評論是不一樣的。評論的+1引導OP到他的解決方案不是脫節的。 – Hardrada

相關問題