Delphi中使用InternetCrackUrl解析URL

问题的由来:最近在程序中经常要用到和网页数据的交互,因此,想用WinInet的API做一个HTTP客户端组件。其中涉及到了对URL解析的一些问题。软件开发使用的版本是DELPHI6,在调用InternetCrackUrl进行URL解析时一直没有成功,通过GetLastError得知是参数错误。对比了WinInet中TURLComponents结构体定义与WINDOWS文档的定义,发现二者的结构定义不同。直接修改WinInet貌似不是可行的办法。因此将WinInet.pas文件拷贝一个副本,重命名为WinHttp.pas,在该文件中重新定义TURLComponents结构为

type
  PURLComponents = ^URL_COMPONENTS;
  URL_COMPONENTS = Record
   dwStructSize:DWORD;
   lpszScheme:PChar;
   dwSchemeLength:DWORD;
   nScheme:TInternetScheme;
   lpszHostName:PChar;
   dwHostNameLength:DWORD;
   nPort:INTERNET_PORT;
   lpszUserName:PChar;
   dwUserNameLength:DWORD;
   lpszPassword:PChar;
   dwPasswordLength:DWORD;
   lpszUrlPath:PChar;
   dwUrlPathLength:DWORD;
   lpszExtraInfo:PChar;
   dwExtraInfoLength:DWORD;

end;

在引用中将WinInet替换为WinHttp,

测试代码如下:

type
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值