0

VBA を使用して HTTPS サイトにファイルを送信しようとしていますが、認証に問題があります。(閲覧すると、サイトにはファイル名の標準フィールドがあり、「参照」ボタンと「送信」ボタンがあります。)

私はいくつかのことを試しました...最初に、InternetExplorer.Applicationオブジェクトを使用しましたが、入力する必要がある要素の型はfileであり、セキュリティ上の理由からコードから直接アクセスできないことを読みました。(引用のリンクがなくてすみません…)

次の提案は、WinHttp.WinHttpRequest.5.1オブジェクトとPUTリクエストを使用することでした。ただし、それを行うと、サイトからの応答は 401、無効な認証エラーです。

通常のブラウジングでは、資格情報を入力せずにサイトにアクセスできます。ここここでHTTPS ヘッダーに関するいくつかの質問を見てきましたが、それらを機能させることができませんでした。誰かが私が間違っていることを見ることができますか?

Dim objHTTP As Object
Dim URL As String
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "https://siteImUploadingTo.domain.com/site"
objHTTP.Open "PUT", URL, False

objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHTTP.Send ("_fileToPost=" & ThisWorkbook.Path & \filename.PDF&_pagesSelection=1-100")
Debug.Print objHTTP.ResponseText 'returns a 401 invalid credentials error.
4

1 に答える 1