用wininet.dll如何带IE的COOKIE访问网页? 如题,本人用IE登录了一个网站,想用WININET来获取登录后的浏览某网页的源码,但不知如何调用已有COOKIE来会话。请会的朋友们多多指教,谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能用控件调用其他浏览器的cookie么? inet控件访问慢了点,想试试用纯API的来获取。 嗯,INET控件就是初始化,花的时间多了点,初始化完还是比较快的;但就是要外带OCX文件,不是绿化式,这不太喜欢,还是喜欢做成绿色软件,所以想用API,试过用WINHTTP语句,但比INET控件还慢,所以才想试试用WININET,会的人还请多多指教一下。还有就是为什么用WININET提交数据这么慢,有没有优化点的方法。提交数据代码如下:Public Function PostInfoKK(WebServer As String, WebPort, ScriptName As String, PostData As String) '调用示范:PostInfoKK("127.0.0.1", 80, "/a.asp", "Cmd=Fuck") On Error GoTo over Dim IntOpen As Long, IntConnect As Long, XHttpOpenRequest As Long, bRet As Boolean IntOpen = 0 IntConnect = 0 XHttpOpenRequest = 0 '使用注册表访问设置。 Const INTERNET_OPEN_TYPE_PRECONFIG = 0 IntOpen = InternetOpen("http generic", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0) If IntOpen <> 0 Then '类型的服务访问。 Const INTERNET_SERVICE_HTTP = 3 Const INTERNET_DEFAULT_HTTP_WebPort = 80 '更改服务器到服务器的名称 IntConnect = InternetConnect(IntOpen, WebServer, WebPort, vbNullString, "HTTP/1.0", INTERNET_SERVICE_HTTP, 0, 0) If IntConnect <> 0 Then '带来的数据通过线路即使本地缓存。 Const INTERNET_FLAG_RELOAD = &H80000000 XHttpOpenRequest = HttpOpenRequest(IntConnect, "POST", ScriptName, "HTTP/1.0", vbNullString, 0, INTERNET_FLAG_RELOAD, 0) If XHttpOpenRequest <> 0 Then Dim HttpHeader As String Const HTTP_ADDREQ_FLAG_ADD = &H20000000 Const HTTP_ADDREQ_FLAG_REPLACE = &H80000000 HttpHeader = "Content-Type: application/x-www-form-urlencoded" & vbCrLf bRet = HttpAddRequestHeaders(XHttpOpenRequest, HttpHeader, Len(HttpHeader), HTTP_ADDREQ_FLAG_REPLACE Or HTTP_ADDREQ_FLAG_ADD) bRet = HttpSendRequest(XHttpOpenRequest, vbNullString, 0, PostData, Len(PostData)) Dim TheLoop As Boolean, RBuffer As String * 2048, ByteNumberRead As Long, IBuffer As String TheLoop = True While TheLoop RBuffer = vbNullString TheLoop = InternetReadFile(XHttpOpenRequest, RBuffer, Len(RBuffer), ByteNumberRead) IBuffer = IBuffer & Left(RBuffer, ByteNumberRead) If Not CBool(ByteNumberRead) Then TheLoop = False Wend PostInfoKK = IBuffer bRet = InternetCloseHandle(XHttpOpenRequest) End If bRet = InternetCloseHandle(IntConnect) End If bRet = InternetCloseHandle(IntOpen) End If Exit Functionover: PostInfoKK = ""End Function 关于vb调用matrixvb优化函数问题 请大家帮我看看这句SQL. 关于vb和access的问题…??? 如何获取鼠标的移动事件 怎样实现数据库中的重复数据删除? vb 创建两个库表报错 text问题? 我刚学VB,不知道什么地方有下VB的吗? 为什么2000下开发的VB程序,安装到98Se后报告无法使用ADO打开数据库? 想找RS422控制录象机的资料...... VB6如何读取文件然后放在数组里? RegCreateKey 修改注册表权限问题
不是绿化式,这不太喜欢,还是喜欢做成绿色软件,所以想用API,
试过用WINHTTP语句,但比INET控件还慢,所以才想试试用WININET,
会的人还请多多指教一下。还有就是为什么用WININET提交数据这么慢,有没有优化点的方法。提交数据代码如下:
Public Function PostInfoKK(WebServer As String, WebPort, ScriptName As String, PostData As String) '调用示范:PostInfoKK("127.0.0.1", 80, "/a.asp", "Cmd=Fuck")
On Error GoTo over
Dim IntOpen As Long, IntConnect As Long, XHttpOpenRequest As Long, bRet As Boolean
IntOpen = 0
IntConnect = 0
XHttpOpenRequest = 0
'使用注册表访问设置。
Const INTERNET_OPEN_TYPE_PRECONFIG = 0
IntOpen = InternetOpen("http generic", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
If IntOpen <> 0 Then
'类型的服务访问。
Const INTERNET_SERVICE_HTTP = 3
Const INTERNET_DEFAULT_HTTP_WebPort = 80
'更改服务器到服务器的名称
IntConnect = InternetConnect(IntOpen, WebServer, WebPort, vbNullString, "HTTP/1.0", INTERNET_SERVICE_HTTP, 0, 0)
If IntConnect <> 0 Then
'带来的数据通过线路即使本地缓存。
Const INTERNET_FLAG_RELOAD = &H80000000
XHttpOpenRequest = HttpOpenRequest(IntConnect, "POST", ScriptName, "HTTP/1.0", vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
If XHttpOpenRequest <> 0 Then
Dim HttpHeader As String
Const HTTP_ADDREQ_FLAG_ADD = &H20000000
Const HTTP_ADDREQ_FLAG_REPLACE = &H80000000
HttpHeader = "Content-Type: application/x-www-form-urlencoded" & vbCrLf
bRet = HttpAddRequestHeaders(XHttpOpenRequest, HttpHeader, Len(HttpHeader), HTTP_ADDREQ_FLAG_REPLACE Or HTTP_ADDREQ_FLAG_ADD)
bRet = HttpSendRequest(XHttpOpenRequest, vbNullString, 0, PostData, Len(PostData))
Dim TheLoop As Boolean, RBuffer As String * 2048, ByteNumberRead As Long, IBuffer As String
TheLoop = True
While TheLoop
RBuffer = vbNullString
TheLoop = InternetReadFile(XHttpOpenRequest, RBuffer, Len(RBuffer), ByteNumberRead)
IBuffer = IBuffer & Left(RBuffer, ByteNumberRead)
If Not CBool(ByteNumberRead) Then TheLoop = False
Wend
PostInfoKK = IBuffer
bRet = InternetCloseHandle(XHttpOpenRequest)
End If
bRet = InternetCloseHandle(IntConnect)
End If
bRet = InternetCloseHandle(IntOpen)
End If
Exit Function
over:
PostInfoKK = ""
End Function