我要取一个网页上的数据可以用url加参数命令取,但是那个网站要用用户登陆后才出现数据页面,否则就转到登陆页面,怎么才能模仿IE用socket发
手动用IE登陆后,再在IE上用URL修改参数参数后,也可以得到数据页面.
但是用webclient等控件不行,仍旧是登陆页面的string
我用socket直接往改网站的80端口发送http消息(模仿IE发的数据包),但也收不到,Recv时报错
Dim strReq As String = GetOverViewReqString("d:\test.log")'截获IE里发送的数据包
Dim strRemoteAddress As String = 'Host address
Dim m_ClientSocket As Socket
Dim hostentry As IPHostEntry
hostentry = Dns.Resolve(strRemoteAddress)
Dim strRetPage As String
Dim bOK As Boolean = True
For Each address As IPAddress In hostentry.AddressList
m_ClientSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim ipe As IPEndPoint = New IPEndPoint(address, 80)
m_ClientSocket.Connect(ipe)
If Not m_ClientSocket.Connected Then
bOK = False
Else
bOK = True
End If
If bOK Then Exit For
Next address
If bOK Then
m_ClientSocket.Send(Encoding.ASCII.GetBytes(strReq), strReq.Length, 0)
Dim RecvBytes As Byte()
ReDim RecvBytes(256)
strRetPage = ""
Dim bytes As Int32 = m_ClientSocket.Receive(RecvBytes, RecvBytes.Length, 0)'报错,但是用www.sina.com.cn就行,收的到数据,但它不需要注册用户登陆
strRetPage = strRetPage + Encoding.ASCII.GetString(RecvBytes, 0, bytes)
While bytes > 0
bytes = m_ClientSocket.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = strRetPage + Encoding.ASCII.GetString(RecvBytes, 0, bytes)
End While
End If
Return strRetPage
问题点数:20、回复次数:1Top
1 楼akirya(坏[其实偶不是什么所谓的坏人])回复于 2006-03-02 17:00:03 得分 0
可能用cookie或者隐藏表但之类的东西。Top




