标签: wininet

如何防止URLDownloadToFile从缓存中检索?

我正在使用URLDownloadToFile从网站检索文件.后续调用将返回原始文件而不是更新版本.我假设它正在检索缓存版本.

c++ winapi wininet

4
推荐指数
2
解决办法
5124
查看次数

C++/WinInet更改代理设置Windows 7

[免责声明:据我所知,这是一个Windows 7特定问题]

我有一段代码可以更改Windows注册表中的代理设置,然后使用以下代码调用WinInet API:

InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
Run Code Online (Sandbox Code Playgroud)

这在XP和Vista中完全没问题,但是在Windows 7中显然发生了一些变化,并且由于某种原因,之前的注册表键被重新注入,导致它无法按预期工作.

如果我注释掉这两行代码,注册表值会很明显,但显然IE和其他依赖代理信息的应用程序并不知道配置已经改变.

是否有更好的方法来处理通知系统选项已更改并需要重新加载?我已经在这个问题上搜索了几天,切换了编译器等等,而我所做的一切都没有像我期望的那样在Windows 7中运行.

c++ wininet

4
推荐指数
1
解决办法
5948
查看次数

当用户名错误时,为什么GetErrorMessage会返回"密码错误"?

GetErrorMessage(来自CInternetException)给出了以下内容:

使用错误的ftp服务器名称:
"ERROR!无法解析服务器名称或地址"

使用错误的密码:
错误!密码是不允许的

使用不正确的用户名:
ERROR! 密码不允许 <-----?用户名错误没有单独的消息?这是有意的吗?

try
{
   pConnect = sess->GetFtpConnection(host, userName, password, port, FALSE );
}

catch (CInternetException* pEx) //incorrect user name displays incorrect password?
{
      TCHAR sz[1024];
      pEx->GetErrorMessage(sz, 1024);
      printf("ERROR!  %s\n", sz);
      pEx->Delete();
}
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi wininet

4
推荐指数
1
解决办法
723
查看次数

如何使用WinInet在Delphi 2010中发送HTTP Post请求

我想使用WinInet在Delphi 2010中发送HTTP Post请求,但我的脚本不起作用; /

这是我的Delphi脚本:

uses WinInet;
procedure TForm1.Button1Click(Sender: TObject);
var
  hNet,hURL,hRequest: HINTERNET;
begin
  hNet := InternetOpen(PChar('User Agent'),INTERNET_OPEN_TYPE_PRECONFIG or INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if Assigned(hNet) then
  begin
  try
    hURL := InternetConnect(hNet,PChar('http://localhost/delphitest.php'),INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,DWORD(0));
    if(hURL<>nil) then
      hRequest := HttpOpenRequest(hURL, 'POST', PChar('test=test'),'HTTP/1.0',PChar(''), nil, INTERNET_FLAG_RELOAD or INTERNET_FLAG_PRAGMA_NOCACHE,0);
    if(hRequest<>nil) then
      HttpSendRequest(hRequest, nil, 0, nil, 0);
    InternetCloseHandle(hNet);
  except
      ShowMessage('error');
    end
  end;
end;
Run Code Online (Sandbox Code Playgroud)

和我的PHP脚本:

$data = $_POST['test'];
$file = "test.txt";
$fp = fopen($file, "a");
flock($fp, 2);
fwrite($fp, $data);
flock($fp, 3);
fclose($fp);
Run Code Online (Sandbox Code Playgroud)

delphi post http wininet

4
推荐指数
1
解决办法
1万
查看次数

如何构造WININET的HttpSendRequest方法

我有URI = http://localhost/IO_100_Service.svc/xml?id = {id}的虚拟Web服务,它返回XML格式的数据我想用VC++中的WINInet APi调用这个服务.有人可以帮我怎么用构造"HttpSendRequest"方法来添加标头和数据来调用此服务.

wininet visual-c++

4
推荐指数
1
解决办法
2万
查看次数

使用HTTPSendRequest上传

我必须用delphi将文件发送到php脚本.我最终选择使用Wininet功能,因为我必须通过NTLM身份验证代理.

当我发送文件时,我的内容请求的每个字符之间都有空字符(00):

POST /upload.php HTTP/1.1
User-Agent: MYUSERAGENT
Host: 127.0.0.1
Cookie: ELSSESSID=k6ood2su2fbgrh805vs74fvmk5
Pragma: no-cache
Content-Length: 5

T.E.S
Run Code Online (Sandbox Code Playgroud)

这是我的Delphi代码:

pSession := InternetOpen('MYUSERAGENT', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
pConnection := InternetConnect(pSession, PChar('127.0.0.1'), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
pRequest := HTTPOpenRequest(pConnection, PChar('POST'), PChar('/upload.php'), 'HTTP/1.0', nil, nil, INTERNET_SERVICE_HTTP, 0);
HTTPSendRequest(pRequest, nil, 0, Pchar('TESTR'), Length('TESTR'));
Run Code Online (Sandbox Code Playgroud)

对于发生了什么的任何想法?

delphi proxy ntlm wininet

4
推荐指数
1
解决办法
1813
查看次数

WinInet 未定义标识符

我对 C++ 编程还很陌生,所以请耐心等待。我正在尝试创建一个用于教育目的的 ftp 客户端,做了一些研究并决定尝试 Wininet,并发现了一些在线教程:

以此为例:

#include <windows.h>
#include <wininet.h>
Run Code Online (Sandbox Code Playgroud)

请注意,没有错误检查或其他任何操作,这只是示例代码。

int main(){

HINTERNET hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);

HINTERNET hFtpSession = InternetConnect(hInternet, "server", INTERNET_DEFAULT_FTP_PORT, "user", "pass", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);  

...


InternetCloseHandle(hInternet); 

}
Run Code Online (Sandbox Code Playgroud)

在写这篇文章时,我的 ide(Vs2017) 告诉我“标识符 internetOpenW 未定义”。与“InternetConnect”相同。我一直在寻找解决方案,但没有成功!我将不胜感激任何帮助,因为我没有其他地方可以求助!

请原谅我的英语不好!

c++ ftp wininet visual-studio

4
推荐指数
1
解决办法
1646
查看次数

您可以传递给 Wininet 函数 HttpOpenRequest 的最大 URL 长度是多少?

您可以传递给 Wininet 函数 HttpOpenRequest 的最大 URL 长度是多少?

url wininet

3
推荐指数
2
解决办法
2732
查看次数

使用 WININET API 处理 GZIP 压缩

我的服务器向我发送了一个使用 GZIP 压缩进行压缩的 JSON 数据流。

当我在普通 IE 浏览器上请求这些数据时,我会得到数据,当我提到要打开的应用程序时,浏览器会自动解压缩该数据流并显示我的 JSON 数据。

我的 C 应用程序使用 COM/OLE 嵌入 IE 浏览器实例,我使用 WININET 进行 GET/POST 操作,所以在这里我压缩了数据。

由于它的 IE 浏览器功能可以在默认 IE 浏览器的情况下自动解压缩 GZIP 数据如何在我的 C 应用程序中通过 WININET 自动解密数据?

c com winapi ole wininet

3
推荐指数
1
解决办法
2970
查看次数

WinInet 可以返回正在使用的 TLS 吗

我们使用 WinInet 和 Delphi 使用 HTTPS 进行通信。WinInet 中是否有一个函数可以返回给我会话中协商过的协议,即 TLS1.1、TLS 1.2 等。

delphi wininet

3
推荐指数
1
解决办法
716
查看次数

标签 统计

wininet ×10

c++ ×4

delphi ×3

winapi ×3

c ×1

com ×1

ftp ×1

http ×1

ntlm ×1

ole ×1

post ×1

proxy ×1

url ×1

visual-c++ ×1

visual-studio ×1

windows ×1