'连接URL
Function OpenURL(ByVal sUrl As String) As String
On Error Resume Next
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim sReadBuffer As String
Dim lNumberOfBytesRead As Long
Dim sBuffer As String
hOpen = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
While bDoLoop
sReadBuffer = Space$(2048)
bRet = InternetReadFile(hOpenUrl, ByVal sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
Wend
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
OpenURL = Trim(sBuffer)
End Function
Function OpenURL(ByVal sUrl As String) As String
On Error Resume Next
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim sReadBuffer As String
Dim lNumberOfBytesRead As Long
Dim sBuffer As String
hOpen = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
While bDoLoop
sReadBuffer = Space$(2048)
bRet = InternetReadFile(hOpenUrl, ByVal sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
Wend
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
OpenURL = Trim(sBuffer)
End Function
解决方案 »
- 编辑器:如何找到toolbar structure具体的图标呢,不知道是放在哪里,想加入一个“H”图标表示字符类型转换。。。请指教
- Pagecontrol上的Tabsheet
- 求解QRDBimage的用法?
- 时间计算
- ¤¤¤解释执行stdcall规范的API函数¤¤¤
- report模式下ListView怎么显示的列比我想要的多一列?
- 咳,闲着没事,开发个操作系统玩玩!
- 兄弟们,大事不好了,我在51job找了好几天,发现没几家要delphi的了 :( 来者有分
- 求助!搞不定要被老板KKKKK!
- 请问一下有关CRM的相关资料,比如解决的是什么,要做的又是什么之类
- 怎样将日期和时间合并?
- 组件赋值给变量的问题
var
hNet,hServer: HINTERNET;
strURL: String;
begin
strURL := 'http://www.yahoo.net';
{ Open an internet session }
hNet := InternetOpen('Project1', // Agent
INTERNET_OPEN_TYPE_PRECONFIG, // ①AccessType
nil, // ProxyName
nil, // ProxyBypass
0); // or INTERNET_FLAG_ASYNC / INTERNET_FLAG_OFFLINE
{Agent contains the name of the application or entity calling the
Internet functions}
{ See if connection handle is valid }
if hNet = nil then
begin
ShowMessage('Unable to get access to WinInet.Dll');
Exit;
end;
{ Connect to the Http Server }
hServer := InternetOpenURL(hNet, // Handle from InternetOpen
PChar(strURL), // Http server
nil, //header
0, //headers Length
INTERNET_FLAG_RAW_DATA,// ②flag
0); // User defined number for callback
if hServer = nil then
begin
InternetCloseHandle(hNet);
ShowMessage(Format('Host "%s" is not available',[strURL]));
Exit;
end
else begin
ShowMessage(Format('Host "%s" is OK',[strURL]));
end;
{...}
end;
対上述的説明:
①AccessType
{ access types for InternetOpen }
const
INTERNET_OPEN_TYPE_PRECONFIG = 0; { use registry configuration }
{$EXTERNALSYM INTERNET_OPEN_TYPE_PRECONFIG}
INTERNET_OPEN_TYPE_DIRECT = 1; { direct to net }
{$EXTERNALSYM INTERNET_OPEN_TYPE_DIRECT}
INTERNET_OPEN_TYPE_PROXY = 3; { via named proxy }
{$EXTERNALSYM INTERNET_OPEN_TYPE_PROXY}
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4; { prevent using java/script/INS }
{$EXTERNALSYM INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY}
②flag
{ flags for InternetOpenUrl: }
INTERNET_FLAG_RAW_DATA = $40000000; { receive the item as raw data }
{$EXTERNALSYM INTERNET_FLAG_RAW_DATA}
INTERNET_FLAG_EXISTING_CONNECT = $20000000; { do not create new connection object }
{$EXTERNALSYM INTERNET_FLAG_EXISTING_CONNECT}