VB使用WebBrowser控件POST数据
2013-03-21 12:13
483 查看
用WebBrowser控件Post数据
2010年2月24日星期三 时间: 上午12:29 发贴者 Jing
Jiang
使用 WebBrowser 控件可以在 Windows 窗体应用程序中承载网页以及支持浏览器的其他文档。例如,可以使用 WebBrowser 控件在应用程序中提供基于 HTML 的集成用户帮助或 Web 浏览功能。此外,还可以使用 WebBrowser 控件向 Windows 窗体客户端应用程序添加基于 Web 的现有控件。
WebBrowser的Navigate函数提供了向网页Post数据的功能:
public void Navigate(string urlString,string targetFrameName,byte[] postData,string additionalHeaders) 将指定的统一资源定位符 (URL) 处的文档加载到 WebBrowser 控件中,使用指定 HTTP 数据请求该文档并替换具有指定名称的网页框架的内容。
其中postData为HTTP POST 数据,例如窗体数据。additionalHeaders要添加到默认标头中的 HTTP标头。一般Http表头设为"Content-Type: application/x-www-form-urlencoded "即可.
如果要正确地向网页Post数据,并须使用以上两个参数.登陆的 Post数据可以通过Fiddler监测获得,如下图:
如变为字符则格式如下: "__VIEWSTATE=%2FwEPDwULLTExNTc2NTI3OTlkZFQGow3nzBFSYeWWyfo%2FOEXT8w5j&UserName=admin&Password=admin123&AuthenButton=%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95&__EVENTVALIDATION=%2FwEWBALUudTOCwKvruq2CALSxeCRDwKGkaOOC8PpQ8Wk8rGROWhMJioW342WQkVO"
则现在如果要WebBrowser打开一个登陆页面,但是向网页Post数据而自动登陆的话只需要步骤:
String PostData="__VIEWSTATE=%2FwEPDwULLTExNTc2NTI3OTlkZFQGow3nzBFSYeWWyfo%2FOEXT8w5j&UserName=admin&Password=admin123&AuthenButton=%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95&__EVENTVALIDATION=%2FwEWBALUudTOCwKvruq2CALSxeCRDwKGkaOOC8PpQ8Wk8rGROWhMJioW342WQkVO";
byte[] b;
b = System.Text.Encoding.UTF8.GetBytes(PostData);
string header = "Content-Type: application/x-www-form-urlencoded ";
WebBrowser.Navigate("http://****/login.aspx","",b,header);
VB使用WebBrowser控件POST数据:
Private Sub Form_Load()
ReDim aByte(0) As Byte
PackBytes aByte(), "id=111&ps=222"
WebBrowser1.Navigate "http://127.0.0.1:90/test.cgi", , , aByte, "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)
End Sub
Private Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)
ReDim ByteArray(iNewBytes)
For i = 0 To iNewBytes
ch = Mid(PostData, i + 1, 1)
If ch = Space(1) Then
ch = "+"
End If
Debug.Print ch, Asc(ch)
ByteArray(i) = Asc(ch)
Next
End Sub
2010年2月24日星期三 时间: 上午12:29 发贴者 Jing
Jiang
使用 WebBrowser 控件可以在 Windows 窗体应用程序中承载网页以及支持浏览器的其他文档。例如,可以使用 WebBrowser 控件在应用程序中提供基于 HTML 的集成用户帮助或 Web 浏览功能。此外,还可以使用 WebBrowser 控件向 Windows 窗体客户端应用程序添加基于 Web 的现有控件。
WebBrowser的Navigate函数提供了向网页Post数据的功能:
public void Navigate(string urlString,string targetFrameName,byte[] postData,string additionalHeaders) 将指定的统一资源定位符 (URL) 处的文档加载到 WebBrowser 控件中,使用指定 HTTP 数据请求该文档并替换具有指定名称的网页框架的内容。
其中postData为HTTP POST 数据,例如窗体数据。additionalHeaders要添加到默认标头中的 HTTP标头。一般Http表头设为"Content-Type: application/x-www-form-urlencoded "即可.
如果要正确地向网页Post数据,并须使用以上两个参数.登陆的 Post数据可以通过Fiddler监测获得,如下图:
如变为字符则格式如下: "__VIEWSTATE=%2FwEPDwULLTExNTc2NTI3OTlkZFQGow3nzBFSYeWWyfo%2FOEXT8w5j&UserName=admin&Password=admin123&AuthenButton=%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95&__EVENTVALIDATION=%2FwEWBALUudTOCwKvruq2CALSxeCRDwKGkaOOC8PpQ8Wk8rGROWhMJioW342WQkVO"
则现在如果要WebBrowser打开一个登陆页面,但是向网页Post数据而自动登陆的话只需要步骤:
String PostData="__VIEWSTATE=%2FwEPDwULLTExNTc2NTI3OTlkZFQGow3nzBFSYeWWyfo%2FOEXT8w5j&UserName=admin&Password=admin123&AuthenButton=%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95&__EVENTVALIDATION=%2FwEWBALUudTOCwKvruq2CALSxeCRDwKGkaOOC8PpQ8Wk8rGROWhMJioW342WQkVO";
byte[] b;
b = System.Text.Encoding.UTF8.GetBytes(PostData);
string header = "Content-Type: application/x-www-form-urlencoded ";
WebBrowser.Navigate("http://****/login.aspx","",b,header);
VB使用WebBrowser控件POST数据:
Private Sub Form_Load()
ReDim aByte(0) As Byte
PackBytes aByte(), "id=111&ps=222"
WebBrowser1.Navigate "http://127.0.0.1:90/test.cgi", , , aByte, "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)
End Sub
Private Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)
ReDim ByteArray(iNewBytes)
For i = 0 To iNewBytes
ch = Mid(PostData, i + 1, 1)
If ch = Space(1) Then
ch = "+"
End If
Debug.Print ch, Asc(ch)
ByteArray(i) = Asc(ch)
Next
End Sub
相关文章推荐
- 【转】介绍vb使用xmlhttp对象、webbrowser控件、inet控件进行Post发包、Get发包的方法
- asp.net中使用jquery的ajax来post数据的树控件
- 使用VB 以HttpPost方式 实现数据发送
- asp.net中使用jquery的ajax来post数据的树控件
- VB自动登陆网络站点详解(二):Inet控件与WebBrowser控件配合使用
- asp.net中不使用服务器控件,直接post 表单数据到server
- 在VB中使用IE的 WebBrowser控件改进界面设计
- C#用WebBrowser控件获取Post数据
- 在https的链接中vb使用post提交xml数据
- c++ builder2010 indy控件idhttp, post页面获取数据(要注意编码的问题,双方都使用UTF-8最好)
- WebBrowser使用POST方法提交数据
- C#用WebBrowser控件获取Post数据
- WebBrowser 控件获取POST数据
- WebBrowser使用POST方法提交数据
- VB 使用Webbrowser控件下载图片 源码
- 在vb.net中使用webbrowser控件和mshtml以及流操作体会(vb.net内嵌IE,拆取 Web 页)(原创)
- 使用树形控件显示VB.NET层级数据
- vb.net WebBrowser控件使用
- vb.net使用WebBrowser浏览器控件自制浏览器的相关技术
- asp.net中使用jquery的ajax来post数据的树控件