问题标签 [wininet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何通过代理服务器环境获取非标准服务?
我对今天的代理服务器可以扮演什么角色并不真正了解,我正在学习,所以对我来说放轻松:-) 我有一个使用本土协议编写的客户端/服务器系统,需要增强客户端协商退出代理环境的方式。
我有一个用 C 和 C++ 编写的现有客户端和服务器系统,以提高速度,并在客户端中使用少量 MFC 来处理用户界面。我已经在 Windows 上编写了系统的服务器端和客户端(我工作的人主要是使用 Windows 一切的 Web 开发人员 - 不是一种选择)坚持使用 Berkeley Sockets,因为它是通过 wsock32 来提高效率的。客户端通过非标准端口连接到服务器(即使使用端口 80 是退出某些环境的一种选择,但通过它的协议不是 HTTP)。TCP 连接在客户端参与实时会议期间保持打开状态。
我们的客户群正在扩展到各种网络环境。我已经能够通过添加通过端口 443 安全连接的能力和使用安全套接字来解决很多问题,因为无法嗅探内部数据包,因此该协议允许协议通过很多环境。但是越来越多的客户使用代理服务器环境,而我的直接连接无法通过。我对代理服务器的老派理解是,它们通过 HTTP 充当外部 HTML 内容的代理,可能在本地缓存流行的材料以加快本地访问速度,还允许其 IT 人员将某些目标站点列入黑名单。客户抱怨我的软件无法识别并且无法轻松地在他们的代理环境中导航,但我' 我发现很难决定我的“最合适”的解决方案应该是什么。我的软件不会在每次客户端请求后断开连接,而且最重要的是,数据包可以随时来自任何一方,基本上是针对特定领域的典型自定义客户端/服务器系统。
我的第一反应是“为什么他们不能将我的服务器地址添加到他们的白名单中”,但如果有一种程序化的方式我可以通过而不需要他们的 IT 人员帮助它在政治上更好,并且可以说是一个更好的解决方案。另外,也许我仍然不了解代理服务器和环境如今已发展成为的角色和目的。
我对解决方案的第一次尝试是使用 WinInet 及其各种代理功能通过端口 80 建立与我的非标准协议服务器的连接(它知道并能够识别和回答一个简单的 HTTP 外观的 GET 请求并用一个简单的HTTP 响应页面,用于绕过一些使用初始数据包嗅探 (DPI) 的环境。我检索了 WinInet 的 HINTERNET 请求对象背后的实际 SOCKET 句柄,并希望使用它来代替我的软件现有的 SOCKET 连接,并且希望不需要在客户端进行更多更改。它最初似乎是我的解决方案,但经过进一步检查,操作系统似乎首先获得了在此套接字上接收到的数据的机会,因为当我通过标准 select(...
有人可以告诉我客户端库(商业很好)可以让我在尽可能少的用户和 IT 人员帮助的情况下通过这些代理服务器环境吗?从我读到的内容来看,它已经超越了 SOCKS,我认为必须有人在我之前解决了这个问题。
感谢您阅读我冗长的问题,
撕裂
image - 如何使用 HttpSendRequest 发送图像数据?
我想使用 HttpSendRequest API 发送图像。
基本上我想用一些字符串参数发布请求,在这些参数之后我需要发送原始图像数据。
那么是否可以创建一个长度等于字符串大小加上图像文件大小的无符号字符缓冲区,然后执行字符串的 memcpy 和图像数据的 memcpy?
c++ - 将二进制图像数据复制到字符串中
我需要使用 HttpSendRequest POST 请求通过网络发送图像数据。为此,我正在创建一个字符串,向字符串添加一些参数,然后我需要添加原始图像数据。
现在我想知道如何在发布请求中发送图像。
visual-c++ - 将图像上传到c ++中的闪烁
我正在使用 win32、wininet 在 VC++ 中创建一个应用程序以将图像上传到 Flickr。我能够正确获取 Frob、Token 但是当我尝试上传图像时出现错误 Post size too large。
标头创建如下
Post请求的内容创建如下:
我不太确定将图像数据添加到字符串并发布请求的方式。我需要将图像数据转换为 Unicode 吗?任何建议,如果有人能发现我做错了什么,这对我很有帮助。
c++ - 从 Windows 应用程序发送短信
我正在创建一个需要向手机发送一些短信的 Windows 应用程序。这只是为了测试目的。现在我可以用我的手机来完成这项工作。我有安卓手机,可以使用 USB 连接到电脑。
应用程序是用 C++、windows api 创建的。
任何指针都会有所帮助
windows - 为 WININET HTTP 请求使用特定的网络接口
当使用 WININET 接口进行传出 HTTP 请求时,有没有办法指定使用哪个本地网络接口?
我知道如何使用 WINSOCK(使用 bind())来做到这一点,但我找不到使用 WININET 的等效方法。
c# - 带有 INTERNET_OPTION_SUPPRESS_BEHAVIOR 选项的 WinInet InternetSetOption 无法按预期工作
大家好,感谢您花时间阅读本文。我有 ac# 应用程序,我希望在其中覆盖默认的 WinInet cookie 设置。目标是即使系统 WinInet cookie 隐私设置设置为 Block All,在我的进程中,cookie 仍将被接受调用。阅读文档,它看起来很简单。这是我所拥有的清理后的版本:
其中 WinInet.InternetSetOption 定义为:
常数是:
InternetSetOption 调用成功 - 没有错误。
我还尝试将 InternetOpen 返回的全局 Internet 句柄作为 InternetSetOption 调用的第一个参数传递,这没有区别。Cookie 继续在我的进程中被阻止。
我需要这样做的原因是我有一个嵌入式 Flash Player ActiveX 实例,它发出 Web 请求。我已成功使用其他 InternetSetOption 调用来修改 Flash 在我的进程中使用的代理设置。我正在 Windows 7 上对此进行测试。
c++ - 带有 INTERNET_AUTODIAL_FORCE_UNATTENDED 的 InternetDial 仍然显示错误对话框?
我有一个在远程设备上运行的软件,它调用InternetDial来建立连接并报告信息。
大多数时候这工作正常,但偶尔会发生某种错误(信号不良等),尽管使用 调用该函数INTERNET_AUTODIAL_FORCE_UNATTENDED
,但当连接失败时,窗口仍然会弹出对话框。
然而,相当烦人的是,这些对话框是模态的,所以代码只是锁定了。
我已经尝试了网络配置上的所有选项组合以及调用InternetDial
例程的方法,但它们都没有阻止该对话框的出现:
有没有办法解决这个问题或我可以连接的其他方式?如果这有所作为,我正在开发 Vista 和 XP Embedded。
windows - delphi中的动态数组和wininet?
我正在使用 WinInet 从我们的一台服务器连接和检索信息。我正在使用以下内容:
到目前为止,这两个字节数组已经足够了。事情发生了变化。服务器现在可以返回大于或小于5000的信息;最糟糕的是,在 InternetReadFile 中,可以在 infoBuffer 中返回可变大小。
所以我尝试将 indexdata 和 infobuffer 声明为字节数组,然后使用 SetLength 设置它的长度,但是发生了两件事。
1)我仍然不知道服务器将返回的 indexdata 的大小,因此我无法正确将其设置为 100000。
2)我不能使用(现在这样)CopyMemory 传递 Low(indexdata) 将 indexdata 复制到一个简单的字符串变量,所以我可以使用数据。
我如何在 Delphi 中处理这个问题?我可以在 C 中做到这一点,但我似乎无法在 Delphi 中正确地做到这一点。
代码表示赞赏
谢谢!
c++ - ftp'ing后如何获取文件的大小?
编辑 答案
finder.GetLength();