2011-09-06 85 views
0

我正在寫一個程序在vb 6.我想發送數據到我的服務器並獲取返回的數據
但我遇到了一個問題:當我發送數據(沒有任何錯誤)是從我的服務器沒有答案。
注意:我使用XAMPP作爲服務器,它可以與瀏覽器一起使用!使用套接字發送數據到HTTP服務器

Private blnConnected As Boolean 


Private Sub cmdSend_Click() 
    Dim str As String 
    str = "GET /newpass/ HTTP/1.1" & vbNewLine & "Host: localhost" & _ 
     vbNewLine & "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.21) Gecko/20110830 Firefox/3.6.21" & _ 
     vbNewLine & "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & _ 
     vbNewLine & "Accept-Language: en-us,en;q=0.5" & _ 
     vbNewLine & "Accept-Encoding: gzip,deflate" & _ 
     vbNewLine & "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & _ 
     vbNewLine & "Keep-Alive: 115" & _ 
     vbNewLine & "Connection: keep-alive" 
    winsock.Protocol = sckTCPProtocol 
    winsock.RemoteHost = "localhost" 
    winsock.RemotePort = 80 
    winsock.Connect 
    While Not blnConnected 
     DoEvents 
    Wend 


    winsock.SendData str 

End Sub 


Private Sub winsock_Connect() 
blnConnected = True 
End Sub 

Private Sub winsock_DataArrival(ByVal bytesTotal As Long) 
    Dim strResponse As String 
    winsock.GetData strResponse, vbString, bytesTotal 
    info.Text = strResponse 
End Sub 

Private Sub winsock_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) 
winsock.Close 
End Sub 
+3

嗯。 VB6具有內置的AsyncRead,Win2K及更高版本具有WinHTTP,幾乎任何東西都具有MSXML,因此至少有3種方法可以實現這一點,而不會出現易出錯的手動編碼。 – Bob77

回答

1

嘗試在最後一個標題後面添加2個換行符。這將向服務器表明標題已完成。

str = "GET /newpass/ HTTP/1.1" & vbNewLine & "Host: localhost" & _ 
     vbNewLine & "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.21) Gecko/20110830 Firefox/3.6.21" & _ 
     vbNewLine & "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & _ 
     vbNewLine & "Accept-Language: en-us,en;q=0.5" & _ 
     vbNewLine & "Accept-Encoding: gzip,deflate" & _ 
     vbNewLine & "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & _ 
     vbNewLine & "Keep-Alive: 115" & _ 
     vbNewLine & "Connection: keep-alive" & vbNewLine & vbNewLine 
+0

謝謝。這樣一個新手的錯誤:-D – undone

+0

請注意,WinInet將幾乎所有這些都消除了,並支持正在使用的標準的許多「變體」。 – Deanna

+0

True:WinInet直接支持HTTP,所以人們可以直接使用它來代替* bit-banging *網絡數據,但如果這是所需的路徑,我們就在這裏爲您服務:) – Femi

相關問題