问题标签 [winhttprequest]

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.

0 投票
1 回答
22121 浏览

vb6 - Post 方法 + WinHttpRequest + multipart/form-data

我很困惑为什么这不起作用似乎找不到任何问题。

这是代码。

现在下面的工作(虽然它只是一个 HTML 表格)。

这是一个数据包嗅探。(之后将主机等更改为示例)

POST / HTTP/1.1..User-Agent:Alalala..Content-Type:multipart/form-data;边界=速度..内容长度:233..接受:/ ..主机:poster.example.com..连接:保持活动..--速度..内容分配:表单数据;name="function"..balance..--speed..Content-Dispostion: form-data; name="username"..blah..--speed..Content-Dispostion: form-data; 名称=“密码”..废话..--速度--..

响应为空

HTTP/1.1 200 OK..日期:2010 年 10 月 7 日星期四 20:31:20 GMT..服务器:Apache..内容长度:0..连接:关闭..内容类型:文本/html;字符集=UTF-8....

PS> 不必发送带有值 Send 的提交按钮,所以如果有人想知道,那就不是它。它可能是什么,我从嗅探中注意到的是,它将标头 + 发布数据(上传数据)作为一个数据包发送,而 firefox/chrome 将它作为 2 个单独的数据包发送。

谢谢

0 投票
0 回答
2735 浏览

c# - httpwebrequest 使用 pfx?

我想使用 C# 重现以下 vbscript 块。

我所做的所有尝试都是 a) 没有功能和 b) 比上面的片段长一点。

后一个代码我一直得到 403。我不知道为什么,但我倾向于权限。在我可以从 cer 文件创建证书之前,有什么特别需要的吗?我需要通过 winhttpcertcfg 申请权限吗?

我最初获得了一个使用证书 MMC 导入的 pfx。似乎没有办法将 pfx 添加为客户端证书,因此我将 pfx 导出为 DER x509 cer 以与 CreateFromCertFile() 方法一起使用。有没有办法只使用pfx?

当然,原始的 VBScript 可以正常工作 - 我只是想了解转换它需要什么。这似乎并不太难,但到目前为止,我经历了一段艰难的时期。

[更新]

显然可以在磁盘上使用 pfx(如果您有密码)但是 [this]http://support.microsoft.com/kb/948154 似乎建议最好依赖证书存储。由于这与原始 vbscript 所做的类似,我修改了上面的代码以从商店中提取证书:

我通过 WinHttpCertCfg 工具添加了授予“所有人”对证书的访问权限。仍然没有运气。不幸的是,这也会从服务器返回 403。浏览代码我可以看到证书已成功找到并创建。我还可以验证它是否已作为客户端证书添加。无论出于何种原因,我在使用 HttpWebResponse 时都没有运气。

但是,使用互操作可以正常工作。尽管我讨厌依赖非框架原生的东西,但 WinHttpRequest 组件似乎更容易使用。我可以用大约 1/4 的代码完成同样的事情,并且可以很好地与应用程序的其余部分集成。

0 投票
1 回答
1988 浏览

delphi - 从 OleVariant 获取 IStream

我正在使用 Delphi 和 WinHTTP 执行 HTTP 请求以从 Internet 下载一些文件,并且我可以执行请求,但我不知道如何从从ResponseStream. 我花了很多时间在谷歌上搜索,但我不知道该怎么做。这是我尝试过的:

但我得到了错误[DCC Error] main.pas(45): E2015 Operator not applicable to this operand type(第 45 行是instream := req.ResponseStream as IStream;)。

如何从 OleVariant 中吓跑 IStream?

0 投票
1 回答
2327 浏览

c++ - 当主机名不包含 www 时 WinHttp 不起作用。(错误 12029)

我正在测试来自http://msdn.microsoft.com/en-us/library/aa384270%28v=vs.85%29.aspx的这个 winhttp 示例

这很好,但如果我拿出 www. 从 www.microsoft.com 我收到 12029 ERROR_WINHTTP_CANNOT_CONNECT 错误,这是什么原因?

如果使用 www.,所有网站都可以使用 winhttp 吗?因为有些网站不使用www,我现在找不到任何网站,但是我看到一些网站在使用www访问时在浏览器上显示“找不到服务器”。但他们在没有它的情况下工作。

0 投票
1 回答
5726 浏览

vb.net - WinHTTPRequest.ResponseText 没有返回完整的 HTML?

我尝试使用 WinHTTP 请求在 VB.Net 中检索网页(HTTPS 网站),由于某种原因它只返回部分 HTML,对它可以占用的字符数有任何长度限制吗?如果是这样,我可以在第 10000 个字符之后获取内容吗?

相关代码在这里:

0 投票
1 回答
884 浏览

http - 如何在本地测试 WinHTTP POST

我需要通过 POST 向第 3 方侦听器发送一些数据。我已经编写了一个数据库触发器以通过 WinHTTP 发送,但我以前从未这样做过。如何设置 POST 侦听器并发送给自己?我想我可以使用 127.0.0.1 作为 IP 但不知道该怎么做?理想情况下,我希望浏览器等待输入然后将其写出来。

0 投票
1 回答
3138 浏览

com - 在经典 ASP 中使用 WinHttpRequest.ResponseStream(与 IStream 相关)?

有没有办法使用VBScript/ASP 中的ResponseStream属性?WinHttp.WinHttpRequest.5.1至少IStream接口(ResponseStream与之相关)在一定程度上集成到了 ASP 中。

或者这是你可以在脚本中实现的限制?如果您想更进一步,要求您推出自己的 COM 组件?

请注意,我知道我可以使用req.ResponseTextreq.ResponseBody感兴趣的是知道您是否可以使用仅针对 C 记录但可能(推测)可访问脚本的内容在脚本中走得更远。我对COM一无所知。

0 投票
4 回答
6945 浏览

vbscript - 如何从 WinHttp.WinHttpRequest 对象解析 xml?

我有一个独立的 VBScript,它连接到服务器并在 WinHttpRequest 对象中获取响应文本(作为 XML)。现在,我的问题是如何解析其中的 XML 内容。当我发布请求(strPostData)时,我需要解析响应 XML。我在下面使用的内容不起作用,因为我无法在控制台上打印输出。不过,我能够输出 ResponseText。但我无法解析它。

这是要解析的 XML:

0 投票
1 回答
1426 浏览

c++ - WinHTTP 是在下载空字节还是我错误地复制了结果缓冲区?

我最近将一个完整的 WinInet 程序移植到 WinHTTP。这是我编写的一个函数,用于将整个 GET 请求包装到一行代码中:

该代码的工作原理是下载请求的 URL。当服务器不返回 Content-Length 标头(大多数情况下)时,就会出现问题。该代码仍将下载所有数据,但在转换为字符串时会嵌入空字节。

上面的代码是这样调用的:

StdString 是 typedef std::basic_string<TCHAR> 而 StdOut 是一个使用 cout 或 wcout 的宏,具体取决于是否定义了 UNICODE。

由于嵌入的空值,并非所有响应都显示在控制台上。可以在此处查看我在关闭调试的情况下运行代码时显示的输出(请注意,换行符只是文本在我的控制台中包装的位置)。第一个空值出现在最后的“__in”之后,并且出现在“按任意键继续......”输出显示的地方。这是输出的屏幕截图:

控制台输出

这是 html 变量值的文本可视化器屏幕截图,准确显示了空值相对于可见内容的显示位置:

用于 html 的文本可视化工具

我是否在某处进行了一些糟糕的复制,或者是否存在我不知道的 WinHTTP 细微差别?

0 投票
1 回答
1036 浏览

vb6 - 如何获得西里尔文响应文本

http.responsetext是西里尔文,我无法阅读文字。如何检索西里尔字母?