2011-09-06 83 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

相关问题