wininet.dll为什么电脑可用手机不可用
我用wininet.dll做了个小程序,练习它的用法,是用于手机的。
但是编译出来的程序在电脑上用没问题,在电脑上用手机模拟器以及在手机上运行都会报错。我调试时发现是InternetOpenUrl返回了0。我想请教一下怎么会这样呢?
以下是用它做的类模块:
Public Class inet
Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const scUserAgent = "Microsoft Internet Explorer 6.0"
Private Const INTERNET_FLAG_RELOAD = &H80000000
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Integer, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Integer) As IntPtr
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As IntPtr, ByVal sUrl As String, ByVal sHeaders As String, ByVal lLength As Integer, ByVal lFlags As Integer, ByVal lContext As Integer) As IntPtr
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Integer) As Integer
<DllImport("wininet.dll", EntryPoint:="InternetReadFile")> _
Private Shared Function InternetReadFile(ByVal hFile As IntPtr, _
<OutAttribute(), MarshalAs(UnmanagedType.LPStr)> ByVal sBuffer As StringBuilder, ByVal lNumBytesToRead As Integer, ByRef lNumberOfBytesRead As Integer) As Boolean
End Function
Public Function GetUrlStr(ByVal URL As String) As String '调用时 URL 参数一定要带 http:// 前缀.
Dim hOpen As IntPtr
Dim hOpenUrl As IntPtr
Dim sUrl As String
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim lNumberOfBytesRead As Integer
Dim sBuffer As String = ""
sUrl = URL
Dim sb As New StringBuilder()
sb.Append(" ", 2048)
Dim sreadbuffer As String = sb.ToString
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, Nothing, Nothing, 0)
'MsgBox(hOpen.ToString)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, Nothing, 0, INTERNET_FLAG_RELOAD, 0)
'MsgBox(hOpenUrl.ToString)
bDoLoop = True
While bDoLoop
bRet = InternetReadFile(hOpenUrl, sb, 2048, lNumberOfBytesRead)
sBuffer = sBuffer & sb.ToString
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
End While
GetUrlStr = sBuffer
If hOpenUrl <> 0 Then InternetCloseHandle(hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle(hOpen)
End Function
End Class