请问如何构造和发送一个http包 请问如何构造和发送一个http包,我想每隔5分钟发送次http的post数据请大家指点谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 什么叫构造?发送就用winsock的send去做好了时间用trimer控制 用WINSOCK下载BAIDU首页 strCommand = "GET / HTTP/1.1" + vbCrLf strCommand = strCommand + "Accept: */*" + vbCrLf strCommand = strCommand + "Accept: text/html" + vbCrLf strCommand = strCommand + "Accept-Language: zh-cn" + vbCrLf strCommand = strCommand + "UA-CPU: x86" + vbCrLf strCommand = strCommand + "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" + vbCrLf strCommand = strCommand + "Host: www.baidu.com" + vbCrLf strCommand = strCommand + "Connection: Keep-Alive" + vbCrLf strCommand = strCommand + vbCrLf Winsock1.SendData strCommand 哈哈,我前几日也写了baidu,帖上来好了有些HTTP头可以省略的,如果一字不漏的抄,反而会出错的Private Sub Command1_Click() With Winsock1 .Close .RemoteHost = "www.baidu.com" .RemotePort = 80 .Connect End WithEnd SubPrivate Sub Winsock1_Connect() Dim strHttp As String strHttp = "GET / HTTP/1.1" & vbCrLf strHttp = strHttp & "Accept-Language: zh-cn" & vbCrLf strHttp = strHttp & "Host: www.baidu.com" & vbCrLf strHttp = strHttp & "Connection: Keep-Alive" & vbCrLf Winsock1.SendData strHttp & vbCrLfEnd Sub 一个POST的数据包POST /Login.aspx HTTP/1.1..Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*..Referer: http://xxxxx/Login.aspx..Accept-Language: zh-cn..Content-Type: application/x-www-form-urlencoded..UA-CPU: x86..Accept-Encoding: gzip, deflate..User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)..Host: dun.63mv.cn..Content-Length: 288..Connection: Keep-Alive..Cache-Control: no-cache..Cookie: ASP.NET_SessionId=ihcotorqjkm0aa3pv0fvdt55....__LASTFOCUS=&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUKMTg2MjQ1Njg5NGRki3%2BtrGl60gQeHRSqh%2B6IzNijqMQ%3D&txtName=xxxxx&txtPwd=xxxxx&txtCode=4n6z2&btnLogin=%E7%99%BB%E9%99%86&__EVENTVALIDATION=%2FwEWBQL09ZXADgLEhISFCwKd%2B7qdDgLChPzDDQKC3IeGDOBx%2BZ6lk95I2v1Fx16bFWBS7b51域名和重要数据用XXXXX替换掉了 ..表示vbcrlf 莫伊美女这么晚了还没睡啊 也是个夜猫子想到个问题 得到的数据如何写到WEBBROWSER上去,使webbrowser能完整的现实网页的内容当然,单纯的HTML代码是能够正确显示的。现在的网页都比较复杂,都连接有CSS,JS,IMG等,这些网页的完整显示(最后的效果就像IE打开这个页面一样)又该如何弄呢 很多人没睡呢,俺跟正常人有时差.要HTTP头用工具,比如watchhttp去截就可以了.我个人觉得webbrowers和http头和源代码没有什么关联使用方向是不太一样的,winsock一般结合http用webbrowers这个跟IE近,一般使用在dom上是最方便,反而读源代码是最不方便的.xmlhttp读源代码最方便,但是静态,对ajax的似乎没什么作用.我个人的一点浅薄理解而已 莫伊美女,貌似是webbrowser而非webbrowers,嘿嘿~~~是这帖让我想起了我那个问题:用SOCKS5代理浏览网页。所以闪出了这么个念头MAXTHON是怎么实现SOCKS5代理浏览网页的呢?郁闷中..... 那不奇怪,那又不代表人家用了WebBrowser啊WebBrowser仅仅是MS提供的一个控件而已啊winsock就可以完成sock代理对那个问题没什么兴趣,觉得是自找麻烦. 看来是过分强调用WEBBROWSER了其实只要编程实现SOCKS5代理浏览网页也算是解决问题 比如我想发送的信息是http://xxx.xxx.xxx.xxx/save.asp?&sele=3那该怎么样构造哪?谢谢大家 楼主终究还得解决用webbrowser显示所获取网页代码时处理CSS,JS,IMG等这些路径的问题,如果你其他问题都解决了,我可以帮你解决这一个。 上面已经讲了,HTTP头要工具去取至于方法,上面代码都写了,难道自己都不会写吗 建议楼主自己用Visual Sniffer或者其他软件抓一下 没有一个说对的!&sele=3 是你要发送的数据!其实你用webbrowser控件就可以,navigate url,flags,frames,postdata,headers就可以了!url:“http://xxx.xxx.xxx.xxx/save.asp”flags : 一般不用设,默认 0frames:也不用 ,0headers: "Content-Type: application/x-www-form-urlencoded"postdata: "&sale=3"这样就可以了!!! kao !看了半天你要发送cookie啊!在第一次发送的数据里填上你要发送的cookie数据试试!!Cookie: ASP.NET_SessionId=ihcotorqjkm0aa3pv0fvdt55....__LASTFOCUS=&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUKMTg2MjQ1Njg5NGRki3%2BtrGl60gQeHRSqh%2B6IzNijqMQ%3D&txtName=xxxxx&txtPwd=xxxxx&txtCode=4n6z2&btnLogin=%E7%99%BB%E9%99%86&__EVENTVALIDATION=%2FwEWBQL09ZXADgLEhISFCwKd%2B7qdDgLChPzDDQKC3IeGDOBx%2BZ6lk95I2v1Fx16bFWBS7b51其实最重要的数据是:&txtName=xxxxx&txtPwd=xxxxx&txtCode=4n6z2&btnLogin=%E7%99%BB%E9%99%86&__EVENTVALIDATION=%2FwEWBQL09ZXADgLEhISFCwKd%2B7qdDgLChPzDDQKC3IeGDOBx%2BZ6lk95I2v1Fx16bFWBS7b51把这个post了试试! 如何用自己的程序捕获SERV-U程序的事件啊? 如何在excel中实现对自动更新的数据求和~ 问,如何改变 listview 的第一列的背景颜色? 从而与其它几列分开出来? 谁有学生管理软件的毕业设计? 如何改变DataGrid每列标题的对齐方式 关于动态域名解析系统的编程方法 如何将小数位数,限定为四位?? 如何在未安装vb的机器上运行带ActiveX控件的程序呀?急死我了! 如何将一张小图片充满 picturebox 的背景 小弟在这里先谢了!! 如何在在u盘扇区中写入字符,并读出这个字符?谢谢? 如何屏蔽IE的一个网址自动转向另一个网址?
strCommand = "GET / HTTP/1.1" + vbCrLf
strCommand = strCommand + "Accept: */*" + vbCrLf
strCommand = strCommand + "Accept: text/html" + vbCrLf
strCommand = strCommand + "Accept-Language: zh-cn" + vbCrLf
strCommand = strCommand + "UA-CPU: x86" + vbCrLf
strCommand = strCommand + "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" + vbCrLf
strCommand = strCommand + "Host: www.baidu.com" + vbCrLf
strCommand = strCommand + "Connection: Keep-Alive" + vbCrLf
strCommand = strCommand + vbCrLf
Winsock1.SendData strCommand
Private Sub Command1_Click()
With Winsock1
.Close
.RemoteHost = "www.baidu.com"
.RemotePort = 80
.Connect
End With
End SubPrivate Sub Winsock1_Connect() Dim strHttp As String
strHttp = "GET / HTTP/1.1" & vbCrLf
strHttp = strHttp & "Accept-Language: zh-cn" & vbCrLf
strHttp = strHttp & "Host: www.baidu.com" & vbCrLf
strHttp = strHttp & "Connection: Keep-Alive" & vbCrLf Winsock1.SendData strHttp & vbCrLfEnd Sub
郁闷中.....
那该怎么样构造哪?谢谢大家
至于方法,上面代码都写了,难道自己都不会写吗
&sele=3 是你要发送的数据!
其实你用webbrowser控件就可以,navigate url,flags,frames,postdata,headers
就可以了!
url:“http://xxx.xxx.xxx.xxx/save.asp”
flags : 一般不用设,默认 0
frames:也不用 ,0
headers: "Content-Type: application/x-www-form-urlencoded"
postdata: "&sale=3"
这样就可以了!!!
在第一次发送的数据里填上你要发送的cookie数据试试!!
Cookie: ASP.NET_SessionId=ihcotorqjkm0aa3pv0fvdt55....__LASTFOCUS=&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUKMTg2MjQ1Njg5NGRki3%2BtrGl60gQeHRSqh%2B6IzNijqMQ%3D&txtName=xxxxx&txtPwd=xxxxx&txtCode=4n6z2&btnLogin=%E7%99%BB%E9%99%86&__EVENTVALIDATION=%2FwEWBQL09ZXADgLEhISFCwKd%2B7qdDgLChPzDDQKC3IeGDOBx%2BZ6lk95I2v1Fx16bFWBS7b51
其实最重要的数据是:&txtName=xxxxx&txtPwd=xxxxx&txtCode=4n6z2&btnLogin=%E7%99%BB%E9%99%86&__EVENTVALIDATION=%2FwEWBQL09ZXADgLEhISFCwKd%2B7qdDgLChPzDDQKC3IeGDOBx%2BZ6lk95I2v1Fx16bFWBS7b51
把这个post了试试!