Not understanding why WinHTTP does NOT authenticate certain HTTPS resource

后端 未结 3 1471
半阙折子戏
半阙折子戏 2020-12-10 23:26

I\'d be extremely grateful for any kind of help that may help me resolving the problem.

From Excel VBA code I need to download & parse CSV file from HTTPS site h

3条回答
  •  一个人的身影
    2020-12-10 23:34

    And one more thing (in addition to the above solution) one should be aware of in case of using POST requests similar to the above code: for some obscure reason I still got once in 4-5 times (or even more) the hated 406 response from the website, which means in my case auth is NOT complete. After hours of step-by-step debugging I happily caught the cause: auth token value may have + signs, and from analyzing an arrow of several dozens auth tokens / response codes I discovered that +-containing tokens exactly match 406 codes.

    The solution became pretty obvious: safely URL-encode +es for the PostData. With the help of http://www.blooberry.com/indexdot/html/topics/urlencoding.htm I finally came up to the following:

    PostData = "authenticity_token=" & Replace(AuthToken, "+", "%2B", vbTextCompare) & _
        "&back_url=https://redmine.itransition.com/projects/" & Trim(RedmineProject) & _
        "/time_entries" & "&username=" & UN & "&password=" & PW & "&login=Login »"
    

    +es are replaced by %2Bs, and this was that - no more 406s!)

    The other special chars do not matter in my case, but the lesson was learned. Hope this will save several hours of life for someone else!

提交回复
热议问题