我似乎無法擺脫這個問題。我使用HttpWebRequest嘗試將一些數據發送到另一個站點。我試圖找出配置防火牆的最佳方式,但我不知所措。通過觀察NetMon的蹤跡,看起來好像忽略了我所說的;我看到的HTTP頭從請求中出來(不是瀏覽器到我的服務器請求,而是我的服務器到遠程服務器請求)不會加起來。瞭解與.NET的HttpWebRequest的SSL連接
Http: Request, CONNECT some.random.url:443
Command: CONNECT
URI: some.random.url:443
Location: some.random.url:443
ProtocolVersion: HTTP/1.1
Host: some.random.url
ProxyConnection: Keep-Alive
HeaderEnd: CRLF
的TCP DstPort也似乎總是與HTTP(80)開始。無論如何,我似乎無法在最初處理443個問題;在開始「真正的」傳輸之前,SSL是否開始與端口80協商?要啓動,這個請求似乎忽略了我在嘗試設置請求之前設置的任何HttpWebRequest設置:即使我設置了HTTP 1.0,或者保持活動爲false,它仍然以上述標題開頭。
它在做什麼?我想知道如何讓它通過,但我不知道它爲什麼表現出這種行爲?
下面的代碼,如果有幫助。
Uri newUri = new Uri("https://some.random.url:443/random");
System.Net.HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(newUri);
wr.Method = "POST";
wr.ContentType = "application/x-www-form-urlencoded";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] requestBytes = encoding.GetBytes("test");
wr.ContentLength = requestBytes.Length;
System.IO.Stream stream = wr.GetRequestStream(); //FAILS HERE, ServerProtocolViolation
我已經搜遍谷歌和其他SSL/HttpWebRequest的問題,但不能拿出一個銀色的子彈。