powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отправка метода PUT в MSXML2.ServerXMLHTTP
6 сообщений из 6, страница 1 из 1
Отправка метода PUT в MSXML2.ServerXMLHTTP
    #40112779
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добра,

С методом POST и GET всё как бы заработало.
А вот пытаюсь выполнить действие PUT в api базиса:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim itm As Variant, strResponse As String, stripeSubID 
Dim SendStat As String

stripeSubID  = 0
SendStat = "-d {""statusId"":""1""}"

Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
httpReq.Open "PUT", "https://cloud.bazissoft.ru/api-cutting-public/orders/" & stripeSubID & "/status", False
httpReq.setRequestHeader "Content-Type", "application/json"
httpReq.setRequestHeader "Content-Type", "multipart/form-data"
httpReq.send SendStat 

strResponse = httpReq.responseText
Debug.Print strResponse


В curl должно отправиться:
Код: html
1.
curl -X PUT "https://cloud.bazissoft.ru/api-cutting-public/orders/0/status" -H "accept: application/json" -H "Content-Type: multipart/form-data" -d {"statusId":"1"}


Но что-то идёт не так. С statusId (integer($int32) ) передавал различными способами результат ошибочный:
Код: xml
1.
2.
{"errors":{"":["Failed to read the request form. Missing content-type boundary."]},"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":
"One or more validation errors occurred.","status":400,"traceId":"|b5730789-482445c40b586577."}


Как я полагаю неправильно оформляю заголовок. Заранее спасибо за помощь.
...
Рейтинг: 0 / 0
Отправка метода PUT в MSXML2.ServerXMLHTTP
    #40112787
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
??
kiv-1980
Всем добра,

С методом POST и GET всё как бы заработало.
А вот пытаюсь выполнить действие PUT в api базиса:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim itm As Variant, strResponse As String
Dim SendStat As String

SendStat = "-d {""statusId"":""1""}"

Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
httpReq.Open "PUT", "https://cloud.bazissoft.ru/api-cutting-public/orders/" & stripeSubID & "/status", False
httpReq.setRequestHeader "Content-Type", "application/json"
httpReq.setRequestHeader "Content-Type", "multipart/form-data"
httpReq.send SendStat 

strResponse = httpReq.responseText
Debug.Print strResponse



В curl должно отправиться:
Код: vbnet
1.
curl -X PUT "https://cloud.bazissoft.ru/api-cutting-public/orders/0/status" -H "accept: application/json" -H "Content-Type: multipart/form-data" -d {"statusId":"1"}



Но что-то идёт не так. С statusId (integer($int32) ) передавал различными способами результат ошибочный:
Код: xml
1.
2.
{"errors":{"":["Failed to read the request form. Missing content-type boundary."]},"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":
"One or more validation errors occurred.","status":400,"traceId":"|b5730789-482445c40b586577."}



Как я полагаю неправильно оформляю заголовок. Заранее спасибо за помощь.
...
Рейтинг: 0 / 0
Отправка метода PUT в MSXML2.ServerXMLHTTP
    #40112793
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Менял на accept, та же петрушка.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim itm As Variant, strResponse As String, stripeSubID 
Dim SendStat As String

stripeSubID  = 0
SendStat = "-d {""statusId"":""1""}"

Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
httpReq.Open "PUT", "https://cloud.bazissoft.ru/api-cutting-public/orders/" & stripeSubID & "/status", False
httpReq.setRequestHeader "Accept", "application/json"
httpReq.setRequestHeader "Content-Type", "multipart/form-data"
httpReq.send SendStat 

strResponse = httpReq.responseText
Debug.Print strResponse

...
Рейтинг: 0 / 0
Отправка метода PUT в MSXML2.ServerXMLHTTP
    #40112799
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kiv-1980
Код: vbnet
1.
2.
3.
Dim SendStat As String

SendStat = "-d {""statusId"":""1""}"


это не нужно
...
Рейтинг: 0 / 0
Отправка метода PUT в MSXML2.ServerXMLHTTP
    #40112802
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
court
kiv-1980
Код: vbnet
1.
2.
3.
Dim SendStat As String

SendStat = "-d {""statusId"":""1""}"


это не нужно

Убирал, тот же результат. Это применение статуса я отправлял различными способами.
"statusId=1" добавлял его в заголовок, ошибка выходит во всех случаях.
...
Рейтинг: 0 / 0
Отправка метода PUT в MSXML2.ServerXMLHTTP
    #40113335
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кому интересно помогла эта статья, пришлось построить форму для multipart/form-data и заполнять Boundary:
stackoverflow
Для решения использовался postman и fidler.

Для частичного решения использовался и curl (который тащить нужно было бы везде), тоже всё работало (проверял изменения состояния post запросом), но мне он очень не нравился, напрягает отсутствия ответа, ваять костыль, вообще было лень. И была бы явная недоделка, а так получилось всё как надо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отправка метода PUT в MSXML2.ServerXMLHTTP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]