powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Тело HTTP-запроса метода POST для использования API функций
23 сообщений из 23, страница 1 из 1
Тело HTTP-запроса метода POST для использования API функций
    #38699878
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте всем.
Моя проблема заключается в том, что я не могу найти пример тела запроса для использования API функций через HTTP методом POST. Мне нужно интегрировать отправление электронных счет-фактур в систему Диадок. Там есть справка по использованию API, но она мало того, что написана с ошибками, так еще и малоинформативна. Если кто-то сталкивался с подобным и есть примеры, то буду сильно благодарен. Рассмотрю любые варианты, высылайте все. Просто перепробовал уже всяко, и в инете не нашел ничего путевого. Техподдержка молчит как дерево. Выручайте(((
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38699906
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38699921
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, я конечно понимаю ты молодец, показал умения пользования поиском, но я по-русски написал-нет ответа на мой вопрос, ты сам среди этого поиска видел ответ на мой вопрос???
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38699940
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я просто прошу если кто-то делал подобную интеграцию с web-интерфейсом электронных систем с использованием API функций, дайте пример тела запроса. Уточняю-то что вы пишите для send
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700060
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеется ввиду WebAPI что ли? пример SOAP-запроса что ли нужен?
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700241
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,есть код:
With xmlzp
.Open "POST", " https://diadoc-api.kontur.ru/V3/PostMessage", False
.setRequestHeader "HOST", "diadoc-api.kontur.ru"
.setRequestHeader "Authorization", "DiadocAuth ddauth_api_client_id=******,ddauth_token=" + dda_token
.setRequestHeader "Content-Length", "1252"
.setRequestHeader "Connection", "Keep-Alive"
.send (тело запроса)
End With
Меня интересует какого формата надо писать в теле запроса, тело HTTP-запроса, после оператора send. Мне нужно для примера любой правильный код этого ТЕЛА, а я уже сам под свою функцию доделаю)))
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700262
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700295
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КолКинShocker.Pro,есть код:
With xmlzp
.Open "POST", " https://diadoc-api.kontur.ru/V3/PostMessage", False
.setRequestHeader "HOST", "diadoc-api.kontur.ru"
.setRequestHeader "Authorization", "DiadocAuth ddauth_api_client_id=******,ddauth_token=" + dda_token
.setRequestHeader "Content-Length", "1252"
.setRequestHeader "Connection", "Keep-Alive"
.send (тело запроса)
End With
Меня интересует какого формата надо писать в теле запроса, тело HTTP-запроса, после оператора send. Мне нужно для примера любой правильный код этого ТЕЛА, а я уже сам под свою функцию доделаю)))строчки с host и Content-Length не нужны, они автоматически вставляются.
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700507
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КолКин,

например, я когда-то пару лет назад для Google Analytics делал так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Dim ObjHTTP As MSXML2.ServerXMLHTTP60
    Set ObjHTTP = New MSXML2.ServerXMLHTTP60
    With ObjHTTP
        .Open "POST", GA_LOGIN_URL, False
        .setRequestHeader "Content-type", "application/x-www-form-urlencoded"
        .setTimeouts GA_HTTP_TIMEOUT, GA_HTTP_TIMEOUT, GA_HTTP_TIMEOUT, GA_HTTP_TIMEOUT
        .send ("accountType=GOOGLE&Email=" & UserID & "&Passwd=" & Password & _
                        "&service=analytics")
        AuthToken = .responseText
    End With



то что идет в тело метода send() описывалось в их доке для GA API.
может и в вашей справке по API что-то такое есть, типа описания параметров и допустимых значений.
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700524
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диклевич Александр, ну автор, видимо, считает, что тут сидят исключительно специалисты по контуру и знают, какие требования к запросу к их сервису, так как сознался, что документация у нее есть, однако показать ее нам он не спешит.
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700577
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

документация по API есть тут .
я полистал, но примеров там не нашел.
но, есть примеры использования API для скачивания тут .
Есть пример на C#, там как раз какая-то отправка документов, можно пример отдебажить по шагам в VS Express 2013 и посмотреть что там отправляется в теле.

только не знаю, можно ли будет это сделать в VB(A).
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700606
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SDK не хочет качаться (о крайней мере у меня)

в тексте документации нигде нет упоминаний ни SOAP ни WSDL

неужели они свой велосипед наваяли... хотя, с них станется.
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700611
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диклевич Александртолько не знаю, можно ли будет это сделать в VB(A).по большому счету можно сделать все, но это будет большое извращение.

Нужно писать софтину на том же шарпе, раз там примеры есть, и взаимодействовать с экселем "извне".

Скорее всего, там можно работать с АПИ, как с объектами, не задумываясь о XML-деталях и POST-запросах.

(SDK вроде начало качаться, посмотрим)
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700626
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачалось.

Автор, там есть примеры для ВБА!

Перед использованием API Диадока через COM, в частности для запуска примеров на языке VBA,
необходимо зарегистрировать типы данной сборки в системе.
Зарегистрировать сборку можно при помощи командного файла Diadoc_Reg.bat в директории ..\C#\DiadocApi\bin\Release\
Отменить регистрацию сборки можно при помощи командного файла Diadoc_Unreg.bat в директории ..\C#\DiadocApi\bin\Release\
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700688
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плохо документацию читаете, граждане

в тело запроса нужно воткнуть xml либо в виде текста либо в виде файла-аттача (не вникал в смысл фразы "Файл обмена"), вот схемы принимаемых xml: https://diadoc.kontur.ru/sdk/InvoiceDocflow.html
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38700698
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСкачалось.

Автор, там есть примеры для ВБА!

Перед использованием API Диадока через COM, в частности для запуска примеров на языке VBA,
необходимо зарегистрировать типы данной сборки в системе.
Зарегистрировать сборку можно при помощи командного файла Diadoc_Reg.bat в директории ..\C#\DiadocApi\bin\Release\
Отменить регистрацию сборки можно при помощи командного файла Diadoc_Unreg.bat в директории ..\C#\DiadocApi\bin\Release\но так конечно проще
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38701840
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо, когда я пару месяцев назад ее скачал там примеров на VBA не было, и самое плохое, что у тех поддержки не было, они не давали, а только руками разводили, теперь разберусь, спасибо!
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38701888
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, пример на VBA это только одно название ПРИМЕР)))) но теперь попробую через dll делать, описание которой тоже нет)))
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38701919
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диклевич Александр, что указывать то я знаю, а вод каким форматом чтоб функция съела я не знаю, как твой формат я уже пробовал, не понимает такой структуры функция(((
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
zpr = "FromBoxID=" + BoxID_Org(dda_token, "6608002884") + "&Invoices='C:\Invoice8-2537.xml'"
    .Open "POST", "https://diadoc-api.kontur.ru/V3/PostMessage", False
    .setRequestHeader "HOST", "diadoc-api.kontur.ru"
    .setRequestHeader "Authorization", "DiadocAuth ddauth_api_client_id=******,ddauth_token=" + dda_token
    .setRequestHeader "Content-Length", "1252"
    .setRequestHeader "Content-Type", "text\xml"
    .setRequestHeader "Connection", "Keep-Alive"
    .send (zpr)



Согласно справке "В теле запроса должно содержаться отправляемое сообщение, сериализованное в протобуфер MessageToPost"

Вот его структура:
message MessageToPost {
required string FromBoxId = 1;
optional string ToBoxId = 2;
repeated XmlDocumentAttachment Invoices = 3;
repeated NonformalizedAttachment NonformalizedDocuments = 4;
repeated BasicDocumentAttachment Torg12Documents = 5;
optional TrustConnectionRequestAttachment TrustConnectionRequest = 6;
repeated BasicDocumentAttachment AcceptanceCertificates = 7;
repeated StructuredDataAttachment StructuredDataAttachments = 8;
repeated BasicDocumentAttachment ProformaInvoices = 9;
repeated XmlDocumentAttachment XmlTorg12SellerTitles = 10;
repeated XmlDocumentAttachment XmlAcceptanceCertificateSellerTitles = 11;
optional string ToDepartmentId = 12;
optional bool IsDraft = 13 [default = false];
optional bool LockDraft = 14 [default = false];
optional bool StrictDraftValidation = 15 [default = true];
optional bool IsInternal = 16 [default = false];
optional string FromDepartmentId = 17;
optional bool DelaySend = 18 [default = false];
repeated PriceListAttachment PriceLists = 19;
repeated NonformalizedAttachment PriceListAgreements = 20;
repeated NonformalizedAttachment CertificateRegistries = 21;
repeated ReconciliationActAttachment ReconciliationActs = 22;
repeated ContractAttachment Contracts = 23;
repeated Torg13Attachment Torg13Documents = 24;
repeated ServiceDetailsAttachment ServiceDetailsDocuments = 25;
}
Обязательные только required. Скажите мне идиоту, что еще то не так(((((
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38703855
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КолКин
Код: vbnet
1.
2.
3.
zpr = "FromBoxID=" + BoxID_Org(dda_token, "6608002884") + "&Invoices='C:\Invoice8-2537.xml'"
 ...
    .send (zpr)



Скажите мне идиоту, что еще то не так(((((

Вы в запросе отправляете не сам файл, а текстовую строку с путем к файлу.
Это не имеет никакого смысла.

Надо сперва загрузить этот файл в переменную VBA, сериализовать или что там, а потом уже отправлять в теле запроса.
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38704458
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диклевич Александр, вот по поводу сериализации у меня и вопрос((( понятия не имею во что именно и как сериализовать. Просматривая коды С# и С++ увидел, что используется, как я понял разработка googl'а, протобуфер. Но вот каким образом тогда мне его в VBA использовать? Я ни разу с ним не сталкивался.
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38704692
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КолКин,

так может это через ту dll из примера для VBA надо делать?
...
Рейтинг: 0 / 0
Тело HTTP-запроса метода POST для использования API функций
    #38705668
КолКин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диклевич Александр, вроде более менее разобрался, там получается дерево типов надо собирать и потом в запросе отправлять, конечно не без dll. Как доведу до рабочего кода то обязательно выложу. Сейчас заморочка в криптографии при формировании одного из типов для сообщения))) короче руками подписать документ надо ЭЦП.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Тело HTTP-запроса метода POST для использования API функций
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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