使用Delphi调用Http GET url的最简单的方法是什么?

前端之家收集整理的这篇文章主要介绍了使用Delphi调用Http GET url的最简单的方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个Web服务,我想在我的应用程序中调用,我可以使用它与导入WSDL或只使用“HTTP GET”与URL和参数,所以我更喜欢以后,因为它很简单的事情。

我知道我可以使用indy idhttp.get,做这项工作,但这是非常简单的事情,我不想添加复杂的indy代码到我的应用程序。

更新:对不起,如果我不清楚,我的意思是“不添加复杂的indy代码”,我不想添加indy组件只是这个简单的任务,并更喜欢更轻的方式。

解决方法

你可以使用 @L_301_0@这样:
uses WinInet;

function GetUrlContent(const Url: string): string;
var
  NetHandle: HINTERNET;
  UrlHandle: HINTERNET;
  Buffer: array[0..1024] of Char;
  BytesRead: dWord;
begin
  Result := '';
  NetHandle := InternetOpen('Delphi 5.x',INTERNET_OPEN_TYPE_PRECONFIG,nil,0);

  if Assigned(NetHandle) then 
  begin
    UrlHandle := InternetOpenUrl(NetHandle,PChar(Url),INTERNET_FLAG_RELOAD,0);

    if Assigned(UrlHandle) then
      { UrlHandle valid? Proceed with download }
    begin
      FillChar(Buffer,SizeOf(Buffer),0);
      repeat
        Result := Result + Buffer;
        FillChar(Buffer,0);
        InternetReadFile(UrlHandle,@Buffer,BytesRead);
      until BytesRead = 0;
      InternetCloseHandle(UrlHandle);
    end
    else
      { UrlHandle is not valid. Raise an exception. }
      raise Exception.CreateFmt('Cannot open URL %s',[Url]);

    InternetCloseHandle(NetHandle);
  end
  else
    { NetHandle is not valid. Raise an exception }
    raise Exception.Create('Unable to initialize Wininet');
end;

来源:http://www.scalabium.com/faq/dct0080.htm

WinINet API使用InternetExplorer正在使用的相同的东西,所以你也得到任何连接和代理设置由InternetExplorer免费。

猜你在找的Delphi相关文章