2009-08-24 49 views
0

我想有WINHTTP做一個「CONNECT」電話(而不是一個「GET」或「POST」),看起來如下:WinHTTP的連接

CONNECT www.etrade.com:443 HTTP/1.0 
Host: www.etrade.com 

然而,WINHTTP總是強制執行後的路徑「連接」動詞如下(在位置的前面):

CONNECT /www.etrade.com:443 HTTP/1.0 
Host: www.etrade.com 

任何解決方法?或者我做錯了什麼?這是在C#.net 3.5框架,Winhttp 5.1

回答

1

CONNECT不是HTTP謂詞,而是HTTPS請求的開始({SSL連接部分)。使用WinHTTP,您只需在OpenRequest上使用WINHTTP_FLAG_SECURE。喜歡的東西:

hConnect = WinHttpConnect(
       hSession, 
       "www.etrade.com", 
       443, 
       0 
      ); 
hRequest = WinHttpOpenRequest(
       hConnect, 
       "GET", 
       "/", 
       "HTTP/1.0", 
       WINHTTP_NO_REFERER, 
       WINHTTP_DEFAULT_ACCEPT_TYPES, 
       WINHTTP_FLAG_SECURE 
      ); 

,讓你一個CONNECT(用於SSL連接),然後GET /(用於HTTP部分)。

0

爲什麼使用WinHTTP而不是System.NET?

你的代碼是什麼(特別是)?

你希望通過手動連接完成什麼?