我用winsock发送HTTP 请求,代码如下:
strsenddata = "areaType=2&areaId=12&zwId=7&alarmContent=告警内容"
strsendHeader = "POST /mas-npsw/alarm/send.action HTTP/1.1" & vbCrLf
strsendHeader = strsendHeader + "Host: 10.35.18.93:8080" + vbCrLf
strsendHeader = strsendHeader & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
strsendHeader = strsendHeader + "Accept: */*" + vbCrLf
strsendHeader = strsendHeader + "User-Agent: post" + vbCrLf
strsendHeader = strsendHeader + "Connection: Keep-Alive" + vbCrLf
strsendHeader = strsendHeader & "Content-Length:" & Len(strsenddata) & vbCrLf
If Winsock1.State <> sckClosed Then
Winsock1.Close
End If
Winsock1.Protocol = sckTCPProtocol
Winsock1.Connect "10.35.18.93", 8080
Do Until Winsock1.State = sckConnected
If i < 10000 Then
i = i + 1
DoEvents
Else
If Winsock1.State <> sckClosed Then
Winsock1.Close
End If
If MsgBox("Time Out! Retry?", vbQuestion + vbYesNo) = vbYes Then
i = 0
Winsock1.Connect
Else
Exit Sub
End If
End If
Loop
strsend = strsendHeader & strsenddata
Winsock1.SendData strsend
运行上面的代码 无法收到返回信息 debug.print winsock1.state=7
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sss As String
Winsock1.GetData sss
Text1.Text = sss
End Sub
text1里面也没有出现返回信息!用INET发送代码如下:
strsenddata = "areaType=2&areaId=12&zwId=7&alarmContent=告警内容"
strsendHeader = strsendHeader & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
strsendHeader = strsendHeader & "Content-Length: " & len(strsenddata) & vbCrLf
strsendadd = "http://10.35.18.93:8080/mas-npsw/alarm/send.action"
Inet1.Execute strsendadd, "POST", strsenddata, strsendHeaderstrsenddata
却可以发送成功。
找了很久也不知道问题出在哪里?有哪位高人指点下!
strsenddata = "areaType=2&areaId=12&zwId=7&alarmContent=告警内容"
strsendHeader = "POST /mas-npsw/alarm/send.action HTTP/1.1" & vbCrLf
strsendHeader = strsendHeader + "Host: 10.35.18.93:8080" + vbCrLf
strsendHeader = strsendHeader & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
strsendHeader = strsendHeader + "Accept: */*" + vbCrLf
strsendHeader = strsendHeader + "User-Agent: post" + vbCrLf
strsendHeader = strsendHeader + "Connection: Keep-Alive" + vbCrLf
strsendHeader = strsendHeader & "Content-Length:" & Len(strsenddata) & vbCrLf
If Winsock1.State <> sckClosed Then
Winsock1.Close
End If
Winsock1.Protocol = sckTCPProtocol
Winsock1.Connect "10.35.18.93", 8080
Do Until Winsock1.State = sckConnected
If i < 10000 Then
i = i + 1
DoEvents
Else
If Winsock1.State <> sckClosed Then
Winsock1.Close
End If
If MsgBox("Time Out! Retry?", vbQuestion + vbYesNo) = vbYes Then
i = 0
Winsock1.Connect
Else
Exit Sub
End If
End If
Loop
strsend = strsendHeader & strsenddata
Winsock1.SendData strsend
运行上面的代码 无法收到返回信息 debug.print winsock1.state=7
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sss As String
Winsock1.GetData sss
Text1.Text = sss
End Sub
text1里面也没有出现返回信息!用INET发送代码如下:
strsenddata = "areaType=2&areaId=12&zwId=7&alarmContent=告警内容"
strsendHeader = strsendHeader & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
strsendHeader = strsendHeader & "Content-Length: " & len(strsenddata) & vbCrLf
strsendadd = "http://10.35.18.93:8080/mas-npsw/alarm/send.action"
Inet1.Execute strsendadd, "POST", strsenddata, strsendHeaderstrsenddata
却可以发送成功。
找了很久也不知道问题出在哪里?有哪位高人指点下!
解决方案 »
- 国庆放分100,顺问一个文件上传的问题
- vb6.0 文本框问题
- 寻VBA技术强人,好心人做一个定时响铃工具(急.........)
- 遇到两个很头大的问题,并且不太好描述,低手高手都请进......
- 如何在vb中安装华表CELL组件
- 急问--->vb如何调用 dll,lib,*.h文件?
- 一个mdb有多大不为过?
- 一个很菜的问题!!!我体会的不深!!!请大家帮助我!!!^&^&^&^
- liyang,谢谢你上次告诉我一些线索,可我还是解决不了,能否将全部原程序E-MAIL我(关于ISHELLFOLDER的那个问题,从桌面开始显示下面的目录)),我的E-MAIL: [email protected] ,thanks
- 诸位大侠,HELP ME !请问如何能够在VB中用语句完成对ACCESS数据库
- 小妹新手上路,VB程序调试报错,想不通问题在哪里,基于VB的PCI数据采集器
- 网络连接问题求助
strsenddata = "areaType=2&areaId=12&zwId=7&alarmContent=告警内容"
strsendHeader = "POST /mas-npsw/alarm/send.action HTTP/1.1" & vbCrLf
strsendHeader = strsendHeader + "Host: 10.35.18.93:8080" + vbCrLf
strsendHeader = strsendHeader & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
strsendHeader = strsendHeader + "Accept: */*" + vbCrLf
strsendHeader = strsendHeader + "User-Agent: post" + vbCrLf
strsendHeader = strsendHeader + "Connection: Keep-Alive" + vbCrLf
strsendHeader = strsendHeader & "Content-Length:" & Len(strsenddata) & vbCrLf 这个头部最后是两个VbCrlf 还是三个 忘记了。。-_-
你多加一两个试试
但绝对不是一个
HTTP/1.1 505 HTTP Version Not Supported
Server: Apache-Coyote/1.1
Date: Tue, 29 Jul 2008 03:37:43 GMT
Connection: close
strsendHeader = strsendHeader & "Content-Length:" & Len(strsenddata) & vbCrLf
strsendHeader = strsendHeader & "Content-Length:" & Len(strsenddata) & vbCrLf & vbCrLf 参见:http://topic.csdn.net/u/20071210/09/3f8e8d05-c235-4367-98cf-4529c0a80d80.html