WinHttpRequest завершается с ошибкой автоматизации, но XMLHTTP60 работает - PullRequest
1 голос
/ 02 марта 2020

За последний год я довольно много ломал веб-страниц, и в какой-то момент по причинам, которые я уже не помню, я решил использовать библиотеку Microsoft WinHTTP Services version 5.1 в качестве решения по умолчанию при отправке HTTP-запросов.

У меня никогда не было проблем с этим, и я добился всего, что я когда-либо пытался сделать, когда речь шла о сломе в Интернете.

То есть, пока я не попробовал следующее:

Sub nse()
Dim req As New WinHttpRequest
Dim url As String, requestPayload As String

url = "https://www.niftyindices.com/Backpage.aspx/getHistoricaldatatabletoString"
requestPayload = "{'name':'NIFTY 50','startDate':'01-Feb-2020','endDate':'01-Feb-2020'}"

With req
    .Open "POST", url, False
    .setRequestHeader "Content-Type", "application/json; charset=UTF-8"
    .send requestPayload
    Debug.Print .responseText
End With

End Sub

Сбой метода .send с

Ошибка времени выполнения -2147012894 (80072ee2) Ошибка автоматизации

Изменение на Dim req As New MSXML2.XMLHTTP60 полностью решает проблему.

Что мне здесь не хватает? Может быть, это как-то специфицирует сайт c? Есть ли что-то во внутренней работе этих двух библиотек, которые я должен знать?

Любой вклад будет оценен.

...