问题描述
我希望这是一个简单的问题。
使用 .NET,我可以简单地访问网站:
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential("myUserName","Password123");
string fileContent = wc.DownloadString("https://example.com/example.txt");
不幸的是,我正在处理一个本地 64 位 DLL 文件,该文件在另一个程序中用作插件。
所以我没有机会使用 .NET,但我只能使用本机 64 位 Windows DLL。
是否有与上述代码相同的本地 Windows API?
我在互联网上搜索过,但一无所获。
解决方法
我自己找到了答案:
“wininet.dll”的功能就是解决办法:
函数InternetOpen()或多或少对应于new WebClient()
。
下载数据有点复杂;不同的协议(HTTP、FTP...)没有统一的API,但是每种协议类型使用的功能不同。
要通过 HTTP 或 HTTPS 下载 (GET
) 或发送 (POST
) 数据,API InternetCrackUrl()、InternetConnect()、HttpSendRequest() 和 {{3 }} 被使用。
(注意:在 Microsoft 网站文档中,函数声明显示为 void InternetOpen(...)
,尽管文档说函数返回类型为 HINTERNET
的值。HINTERNET
是正确的,void
是错误的。)