-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


POST запрос multipart/form-data

Пятница, 27 Апреля 2018 г. 23:42 + в цитатник
Мне нужно загрузить данные на сервер : Описание, что хотят на входе:

https://zakupki.gov.ru/pgz/services/upload/upload HTTP/1.1

Content-Type: multipart/form-data; boundary=---------------------------7db10b11c0824
Host: zakupki.gov.ru
Content-Length: (размер содержимого)
Connection: Keep-Alive
Cache-Control: no-cache

-----------------------------7db10b11c0824
Content-Disposition: form-data; name="login"

(имя пользователя)
-----------------------------7db10b11c0824
Content-Disposition: form-data; name="password"

(пароль)
-----------------------------7db10b11c0824
Content-Disposition: form-data; name="clientType"

(тип клиента)
-----------------------------7db10b11c0824
Content-Disposition: form-data; name="document"; filename="(имя файла)"
Content-Type: text/xml

(XML-документ)
-----------------------------7db10b11c0824
Content-Disposition: form-data; name="signature"; filename="(имя файла)"
Content-Type: application/octet-stream

(Электронная подпись)
-----------------------------7db10b11c0824


Все писать в setRequestHeader ? Где заканчивается заголовок и начинается тело?

Content-Type: text/xml
Сюда забрасываю строки xml файла? Содержит русские буковки, что с ними будет на сервере?

Content-Type: application/octet-stream
Сюда забрасываю строку электронной подписи?


Если нет в заголовке, то и не нужно?
oHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

Хочу получить вразумительный ответ сервера... Пароль неправильный, или электронной подписи нет...


Private Sub Кнопка0_Click()
Dim strPOST As String
Dim boundary As String
Dim UserName As String
Dim Password As String
Dim XMLHTTP As Object
Dim headers

boundary = "---------------------------7db10b11c0824"
UserName = "12345"
Password = "12345"

' Собираю тело

strPOST = boundary & vbCrLf
strPOST = strPOST & "Content-Disposition: form-data; name=""login""" & vbCrLf & vbCrLf & UserName & vbCrLf
strPOST = strPOST & boundary & vbCrLf
strPOST = strPOST & "Content-Disposition: form-data; name=""password""" & vbCrLf & vbCrLf & Password & vbCrLf
strPOST = strPOST & boundary & vbCrLf
strPOST = strPOST & "Content-Disposition: form-data; name=""clientType""" & vbCrLf & vbCrLf & "bank" & vbCrLf
strPOST = strPOST & boundary & vbCrLf
strPOST = strPOST & "Content-Disposition: form-data; name=""document""" & ";filename=c:\xml\1.xml" & vbCrLf
strPOST = strPOST & "Content-Type :text/xml" & vbCrLf & vbCrLf
strPOST = strPOST & ???? Здесь не знаю, что писать. Код xml? А как быть с двойными кавычками...? 
strPOST = strPOST & boundary & vbCrLf
strPOST = strPOST & "Content-Disposition: form-data; name=""signature""" & ";filename=c:\xml\1.sig" & vbCrLf
strPOST = strPOST & "Content-Type :application/octet-stream" & vbCrLf & vbCrLf
strPOST = strPOST & ??? Тут куча символов электронной подписи & vbCrLf  
strPOST = strPOST & boundary &"--"& vbCrLf   ' Нужны ли здесь в конце --
strPOST = strPOST & "--" & boundary & "--" & vbCrLf


'Формирую заголовок

Set XMLHTTP = CreateObject("MSXML2.Msxml2.XMLHTTP.6.0")
XMLHTTP.Open "POST", "https://zakupki.gov.ru/pgz/services/upload", True
' Нужен "User-Agent"? Не просят...
XMLHTTP.setRequestHeader "Content-Type", "multipart/form-data; boundary=---------------------------7db10b11c0824"
XMLHTTP.setRequestHeader "Content-Length", Len(strPOST)
XMLHTTP.setRequestHeader "Cache-Control", "no-cache"
XMLHTTP.setRequestHeader "Connectiont", "Keep-Alive"


XMLHTTP.send strPOST

  Dim t!
    t = Timer + 10
    Do
      DoEvents
      headers = XMLHTTP.getAllResponseHeaders()
    If Len(headers) Then Exit Do
    Loop While Timer < t
    On Error GoTo 0
    MsgBox headers

Set XMLHTTP = Nothing
End Sub

http://www.sql.ru/forum/1291800/post-zapros-multipart-form-data


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку