問題の解決に役立つ可能性のあるあらゆる種類のヘルプに非常に感謝しています。
Excel VBA コードから、HTTPS サイトhttps://redmine.itransition.com/から CSV ファイルをダウンロードして解析する必要があります。WinHTTP を使用してファイルを取得しようとしています。ただし、認証が機能しない理由がわかりません。関連するコードは次のとおりです。
TargetURL = "https://redmine.itransition.com/projects/pmct/time_entries.csv"
Set HTTPReq = CreateObject("WinHttp.WinHttpRequest.5.1")
HTTPReq.Option(4) = 13056 ' WinHttpRequestOption_SslErrorIgnoreFlags 13056: ignore all err, 0: accept no err
HTTPReq.Open "GET", TargetURL, False
HTTPReq.SetCredentials "UN", "PW", 0
HTTPReq.send
次の応答を返します (特定の文字列のみがリストされています)。
Content-Type: text/html; charset=utf-8
Status: 406
X-Runtime: 5
ただし、手動認証に成功した後、Firefox Cookie から「Cookie」文字列を送信すると、
HTTPReq.setRequestHeader "Cookie", SetCookieString
HTTPReq.send
期待されるファイルを簡単に取得できます。もちろん、私はそのようなソリューションに満足しておらず、真の WinHTTP 認証を実行したいと考えています。しかし、何が間違っているのか、自分のコードで何が欠けているのか理解できません。ほとんどの場合.SetClientCertificate
、メソッドを使用する必要がありますが、これは私には不明です-どの証明書が必要ですか?
または、より一般的に言えば、デバッグにどの WinHTTP メソッドまたは関数を使用して、どのステップがブロックされているか正しくないかを確認し、正しい認証を妨げているのでしょうか? MSDN とさまざまなリソースを 2 週間探しましたが、まだ解決策がありません。
ご提案いただきありがとうございます。