📄 subject_15326.htm
字号:
<p>
序号:15326 发表者:orangeway 发表日期:2002-09-17 15:00:36
<br>主题:API .....
<br>内容:立某INTERNET连接前如果成功的建立了INTERNET对话,就返回一个 <BR><BR>值作为连接,请问internetconnect()这个函数怎么用??请高手解答一下, <BR><BR>谢谢!~~~ 调试在 VB 6.0 时,显示找不到DLL internet出口. ......
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Aikoc 回复日期:2002-09-17 19:10:32
<br>内容: 可以加上相关声明<BR> 例子:<BR> Private Declare Function InternetOpen Lib "wininet.dll" _<BR> Alias "InternetOpenA" _<BR> (ByVal lpszCallerName As String, _<BR> ByVal dwAccessType As Long, _<BR> ByVal lpszProxyName As String, _<BR> ByVal lpszProxyBypass As String, _<BR> ByVal dwFlags As Long) As Long<BR><BR> Private Declare Function InternetConnect Lib "wininet.dll" _<BR> Alias "InternetConnectA" _<BR> (ByVal hInternetSession As Long, _<BR> ByVal lpszServerName As String, _<BR> ByVal nProxyPort As Integer, _<BR> ByVal lpszUsername As String, _<BR> ByVal lpszPassword As String, _<BR> ByVal dwService As Long, _<BR> ByVal dwFlags As Long, _<BR> ByVal dwContext As Long) As Long<BR><BR> Private Declare Function InternetReadFile Lib "wininet.dll" _<BR> (ByVal hFile As Long, _<BR> ByVal sBuffer As String, _<BR> ByVal lNumBytesToRead As Long, _<BR> lNumberOfBytesRead As Long) As Integer<BR><BR> Private Declare Function HttpOpenRequest Lib "wininet.dll" _<BR> Alias "HttpOpenRequestA" _<BR> (ByVal hInternetSession As Long, _<BR> ByVal lpszVerb As String, _<BR> ByVal lpszObjectName As String, _<BR> ByVal lpszVersion As String, _<BR> ByVal lpszReferer As String, _<BR> ByVal lpszAcceptTypes As Long, _<BR> ByVal dwFlags As Long, _<BR> ByVal dwContext As Long) As Long<BR><BR> Private Declare Function HttpSendRequest Lib "wininet.dll" _<BR> Alias "HttpSendRequestA" _<BR> (ByVal hHttpRequest As Long, _<BR> ByVal sHeaders As String, _<BR> ByVal lHeadersLength As Long, _<BR> ByVal sOptional As String, _<BR> ByVal lOptionalLength As Long) As Boolean<BR><BR> Private Declare Function InternetCloseHandle Lib "wininet.dll" _<BR> (ByVal hInternetHandle As Long) As Boolean<BR><BR> Private Declare Function HttpAddRequestHeaders Lib "wininet.dll" _<BR> Alias "HttpAddRequestHeadersA" _<BR> (ByVal hHttpRequest As Long, _<BR> ByVal sHeaders As String, _<BR> ByVal lHeadersLength As Long, _<BR> ByVal lModifiers As Long) As Integer<BR><BR> Private Sub Command1_Click()<BR> Dim hInternetOpen As Long<BR> Dim hInternetConnect As Long<BR> Dim hHttpOpenRequest As Long<BR> Dim bRet As Boolean<BR><BR> hInternetOpen = 0<BR> hInternetConnect = 0<BR> hHttpOpenRequest = 0<BR><BR> 'Use registry access settings.<BR> Const INTERNET_OPEN_TYPE_PRECONFIG = 0<BR> hInternetOpen = InternetOpen("http generic", _<BR> INTERNET_OPEN_TYPE_PRECONFIG, _<BR> vbNullString, _<BR> vbNullString, _<BR> 0)<BR><BR> If hInternetOpen <> 0 Then<BR> 'Type of service to access.<BR> Const INTERNET_SERVICE_HTTP = 3<BR> Const INTERNET_DEFAULT_HTTP_PORT = 80<BR> 'Change the server to your server name<BR> hInternetConnect = InternetConnect(hInternetOpen, _<BR> "yourserver", _<BR> INTERNET_DEFAULT_HTTP_PORT, _<BR> vbNullString, _<BR> "HTTP/1.0", _<BR> INTERNET_SERVICE_HTTP, _<BR> 0, _<BR> 0)<BR><BR> If hInternetConnect <> 0 Then<BR> 'Brings the data across the wire even if it locally cached.<BR> Const INTERNET_FLAG_RELOAD = &H80000000<BR> hHttpOpenRequest = HttpOpenRequest(hInternetConnect, _<BR> "POST", _<BR> "/scripts/testpost.asp", _<BR> "HTTP/1.0", _<BR> vbNullString, _<BR> 0, _<BR> INTERNET_FLAG_RELOAD, _<BR> 0)<BR><BR> If hHttpOpenRequest <> 0 Then<BR> Dim sHeader As String<BR> Const HTTP_ADDREQ_FLAG_ADD = &H20000000<BR> Const HTTP_ADDREQ_FLAG_REPLACE = &H80000000<BR> sHeader = "Content-Type: application/x-www-form-urlencoded" _<BR> & vbCrLf<BR> bRet = HttpAddRequestHeaders(hHttpOpenRequest, _<BR> sHeader, Len(sHeader), HTTP_ADDREQ_FLAG_REPLACE _<BR> Or HTTP_ADDREQ_FLAG_ADD)<BR><BR> Dim lpszPostData As String<BR> Dim lPostDataLen As Long<BR><BR> lpszPostData = "lname=Doe&fname=John"<BR> lPostDataLen = Len(lpszPostData)<BR> bRet = HttpSendRequest(hHttpOpenRequest, _<BR> vbNullString, _<BR> 0, _<BR> lpszPostData, _<BR> lPostDataLen)<BR><BR> Dim bDoLoop As Boolean<BR> Dim sReadBuffer As String * 2048<BR> Dim lNumberOfBytesRead As Long<BR> Dim sBuffer As String<BR> bDoLoop = True<BR> While bDoLoop<BR> sReadBuffer = vbNullString<BR> bDoLoop = InternetReadFile(hHttpOpenRequest, _<BR> sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)<BR> sBuffer = sBuffer & _<BR> Left(sReadBuffer, lNumberOfBytesRead)<BR> If Not CBool(lNumberOfBytesRead) Then bDoLoop = False<BR> Wend<BR> MsgBox sBuffer<BR> bRet = InternetCloseHandle(hHttpOpenRequest)<BR> End If<BR> bRet = InternetCloseHandle(hInternetConnect)<BR> End If<BR> bRet = InternetCloseHandle(hInternetOpen)<BR> End If<BR><BR> End Sub<BR><BR> Private Sub Command2_Click()<BR> Dim strURL As String, strFormData As String<BR> 'Change the server to your server name<BR> strURL = "http://yourserver/scripts/testpost.asp"<BR> strFormData = "lname=Doe&fname=John"<BR> Inet1.Execute strURL, "Post", strFormData, _<BR> "Content-Type: application/x-www-form-urlencoded"<BR> End Sub<BR><BR> Private Sub Inet1_StateChanged(ByVal State As Integer)<BR> Dim vtData As Variant ' Data variable.<BR><BR> Select Case State<BR> ' ... Other cases not shown.<BR> Case icError ' 11<BR> ' In case of error, return ResponseCode and<BR> ' ResponseInfo.<BR> vtData = Inet1.ResponseCode & ":" & _<BR> Inet1.ResponseInfo<BR><BR> Case icResponseCompleted ' 12<BR> Dim strData As String: strData = ""<BR> Dim bDone As Boolean: bDone = False<BR><BR> ' Get first chunk.<BR> vtData = Inet1.GetChunk(1024, icString)<BR> DoEvents<BR><BR> Do While Not bDone<BR><BR> strData = strData & vtData<BR> ' Get next chunk.<BR> vtData = Inet1.GetChunk(1024, icString)<BR> DoEvents<BR><BR> If Len(vtData) = 0 Then<BR> bDone = True<BR> End If<BR> Loop<BR><BR> MsgBox strData<BR> End Select<BR> End Sub<BR><BR> Private Sub Form_Load()<BR> Inet1.Cancel<BR> End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -