【问题标题】:wininet https scraping error "You're speaking plain HTTP to an SSL-enabled server port."wininet https 抓取错误“您正在对启用 SSL 的服务器端口使用纯 HTTP。”
【发布时间】:2020-06-21 02:01:54
【问题描述】:

我正在网上抓取一些 https 网站。这是我的代码。

hh.OpenHttp AddressOf InternetStatusCallback, "MY WEBSITE", "GET", 443, "/search/searchResult"
...
Private ctx As LongPtr
...
'OpenHttp Function
openRequestHandle = HttpOpenRequest(connectHandle, mMethod, mUrl, vbNullString, vbNullString, vbNullString, INTERNET_FLAG_RELOAD Or INTERNET_FLAG_NO_CACHE_WRITE, VarPtr(ctx))

我得到了这个。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
<blockquote>Hint: <a href="MY WEBSITE"><b>MY WEBSITE</b></a></blockquote></p>
</body></html>

该网站不是我的,所以我无法编辑网站。 我只能编辑我的代码。

有什么想法吗?

【问题讨论】:

  • 您的网址是否使用“https”?
  • 是的。例如)blahblah.com

标签: vb6 wininet


【解决方案1】:

调用时需要指定安全连接标志:

void HttpOpenRequestA(
  HINTERNET hConnect,
  LPCSTR    lpszVerb,
  LPCSTR    lpszObjectName,
  LPCSTR    lpszVersion,
  LPCSTR    lpszReferrer,
  LPCSTR    *lplpszAcceptTypes,
  DWORD     dwFlags,
  DWORD_PTR dwContext
);

在 MS 上:

https://docs.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-httpopenrequesta

INTERNET_FLAG_SECURE 使用安全事务语义。这 转换为使用安全套接字层/私人通信 技术 (SSL/PCT),仅在 HTTP 请求中有意义。

在堆栈上:

How to send HTTPS request using WinInet?

【讨论】:

  • 谢谢。所以我现在使用它: openRequestHandle = HttpOpenRequest(connectHandle, mMethod, mUrl, vbNullString, vbNullString, vbNullString, INTERNET_FLAG_SECURE 或 INTERNET_FLAG_IGNORE_CERT_CN_INVALID 或 INTERNET_FLAG_IGNORE_CERT_DATE_INVALID, 0) 但是现在,它没有任何错误就无法工作。只是无限加载。我该怎么办?
  • 为什么把最后一个参数从VarPtr(ctx)改成0
  • 如果我使用 VarPtr(ctx),我会得到 No Responding。
猜你喜欢
  • 2020-06-24
  • 2021-07-13
  • 2010-11-05
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 2018-10-15
  • 2019-05-28
  • 2022-01-11
相关资源
最近更新 更多