Я использую макрос в Outlook, VBA для отправки файла в URL с помощью POST:Как сделать запрос POST на страницу, которая может перенаправить на страницу входа
Set http = New WinHttp.WinHttpRequest
http.Open "POST", UrlToPostTo, False 'True '
http.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
http.setRequestHeader "Content-Type", "multipart/form-data; "
http.Send data
Моя проблема страница, будет принимать запрос (в этом случае страница загрузки файлов) защищена аутентификацией - первоначальный запрос для нее выше вернет страницу входа, а не сама страница.
Я попытался определить, появляется ли страница входа в систему, и если да, укажите имя пользователя и пароль как переменные формы (я надеюсь, что это эквивалентно тому, что человек вводит имя пользователя и пароль на страницу в веб-браузере) ,
Итак, шаги:
* URL-адрес запроса (включая файл с сообщением).
* Проверьте, является ли ответом страница входа.
* Если это так, то в том же сеансе http укажите имя пользователя и пароль для URL-адреса.
* Если сервер теперь обрабатывает исходное сообщение, хорошо, в противном случае я могу опубликовать его снова.
код выглядит следующим образом:
' if the login page comes back, send credentials '
If (InStr(http.ResponseText, "j_password") > 0) Then
Dim loginData As String
loginData = "j_username=theusername&j_password=thepassword"
http.Open "POST", UrlToPostTo, False
http.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
http.setRequestHeader "Content-Type", "multipart/form-data; "
http.Send loginData
End If
Но когда я делаю это, http.Responsetext только страница Войти по-прежнему (или снова?).
Любая идея, что я делаю неправильно? Является ли мой план действительным?
(Это связано с попыткой решить this problem)
страница входа URL тот же - я прошу оригинальную страницу и служит исходную страницу, если я уже идентифицирован, или страница Войти в противном случае , Я не перенаправляюсь, URL-адрес в браузере не изменяется, когда вы делаете это вручную. – MGOwen
@barrowc, спасибо, я попробую проверить статус и заголовки, как было предложено. – MGOwen