关于Delphi 获取Https的问题

m0_37551303 2019-05-19 08:34:05
小弟想获取 Https 的源文件。找了N种办法都不成功。看到一个这样的案例,可是执行出来返回的结果都是乱码。请各位大大帮着看一下

function GetWebPage(const Url: string): string;
var
Session, HttpFile: HINTERNET;
szSizeBuffer: Pointer;
dwLengthSizeBuffer: DWord;
dwReserved: DWord;
dwFileSize: DWord;
dwBytesRead: DWord;
Contents: PChar;
begin
Session := InternetOpen('', 0, niL, niL, 0);
HttpFile := InternetOpenUrl(Session, PChar(Url), niL, 0, 0, 0);
dwLengthSizeBuffer := 1024;
HttpQueryInfo(HttpFile, 5, szSizeBuffer, dwLengthSizeBuffer, dwReserved);
GetMem(Contents, dwFileSize);
InternetReadFile(HttpFile, Contents, dwFileSize, dwBytesRead);
InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
Result := StrPas(Contents);
FreeMem(Contents);
end;


返回结果:(ℼ佄呃偙⁅瑨汭ാ㰊瑨汭挠慬獳∽爠獥潰獮癩≥氠湡㵧攢≮ാ㰊敨摡ാऊ洼瑥⁡.....)省略
...全文
218 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_37551303 2019-05-24
  • 打赏
  • 举报
回复
问题是用idhttp能返回正常的网页源码。用这个函数就不行。我也不知道问题出在哪里
victor_yang 2019-05-24
  • 打赏
  • 举报
回复
utf8toansi(iObject.N['errmsg'].AsString)
就是用utf8toansi函数转换,如果还是乱码应该不是utf8字符
m0_37551303 2019-05-22
  • 打赏
  • 举报
回复
引用 1 楼 Frank.WU 的回复:
将接受到的原始东西存为文件,再用UE打开看看里面是什么就知道怎么搞了。
猜想一般是 utf8 的问题。


用UTF-8解码了,还是乱码
武稀松 2019-05-22
  • 打赏
  • 举报
回复
有可能是文件编码问题,也有可能对方的页面是GZIP压缩的
Frank.WU 2019-05-21
  • 打赏
  • 举报
回复
将接受到的原始东西存为文件,再用UE打开看看里面是什么就知道怎么搞了。 猜想一般是 utf8 的问题。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧