|
http. Post запрос | ☑ | ||
---|---|---|---|---|
0
Belarus
11.12.19
✎
13:25
|
Добрый день. Такой вопрос. Необходимо на сайт передать текст, но не работает. Может поможете найти ошибку
Метод выставляет новый счет. Метод: POST URL: https://api.express-pay.by/v1/invoices?token={Token} Код: //Тело post запроса Стр = "Token=" + Token + Разделитель + "AccountNo=" + ...... + "ReturnInvoiceUrl=1"; //В этот файл для примера наш сайт сформирует ответ после отправки на него данных методом POST ФайлОтвета = "C:\answer.txt"; //путь к сайту //HTTPСоединение = Новый HTTPСоединение("https://api.express-pay.by/v1/invoices?token={"+Token+ "}",,,,,Истина); HTTPСоединение = Новый HTTPСоединение("https://api.express-pay.by/v1/invoices?token={"+Token+ "}",, "логин", "*пароль"); //создаем запрос данных методом POST запросPOST = Новый HTTPЗапрос("api.express-pay.by"); // Адрес ресурса //Заголовок тела запроса запросPOST.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded"); //Здесь задаем текст нашей отформатированной строки + задаем формат сроки запросPOST.УстановитьТелоИзСтроки(Стр, "utf-8", ИспользованиеByteOrderMark.НеИспользовать); Попытка //Отправляем для обрааботки на наш сервер HTTPСоединение.ОтправитьДляОбработки(запросPOST, ФайлОтвета); Исключение #Если клиент Тогда Сообщить(ОписаниеОшибки()); #КонецЕсли КонецПопытки; |
|||
1
Fragster
гуру
11.12.19
✎
13:33
|
А ошибку мы должны угадать?
|
|||
2
Ёпрст
11.12.19
✎
13:35
|
ну и токен если есть в строке соединения то в теле не нужен
|
|||
3
ДенисЧ
11.12.19
✎
13:39
|
(1) не работает@
Я подозреваю, так и говорит )) |
|||
4
dmpl
11.12.19
✎
13:40
|
(0) А где путь запроса устанавливается?
|
|||
5
Belarus
11.12.19
✎
13:45
|
Ошибки нет... просто не работает )
|
|||
6
Belarus
11.12.19
✎
13:46
|
Файл ответа пуст
|
|||
7
Belarus
11.12.19
✎
13:47
|
Может я адрес ресурса не так пишу.... или URL не в той форме записываю?
|
|||
8
Belarus
11.12.19
✎
13:48
|
(4) какой путь запроса?
|
|||
9
dmpl
11.12.19
✎
13:48
|
(5) Web-сервер дает же какой-то код ответа.
(7) В HTTPСоединение указывается адрес сервера, в HTTPЗапрос - все, что идет после адреса сервера. А в тело вообще что-то другое может быть помещено (например, отправляемый файл). |
|||
10
Ёпрст
11.12.19
✎
13:49
|
(7)
Во всех запросах передаются обязательные параметры: {version} – версия API; token={token} – API-ключ (токен) доступа к серверу, который задается в личном кабинете; signature={hash} – цифровая подпись запроса, которая формируется на основании секретного слова (задается в личном кабинете) и передаваемых данных. Данное поле является опциональным. |
|||
11
dmpl
11.12.19
✎
13:52
|
+(9) У вас получается запрос к https://api.express-pay.by/api.express-pay.by
|
|||
12
Belarus
11.12.19
✎
13:56
|
(11) да... но ответа никакого нет
|
|||
13
Belarus
11.12.19
✎
14:02
|
да (11)
|
|||
14
Ёпрст
11.12.19
✎
14:12
|
(13)
.....Новый HTTPСоединение("api.express-pay.by",........,Истина); ..... Новый HTTPЗапрос("/v1/invoices"); |
|||
15
Belarus
11.12.19
✎
14:18
|
(14) HTTPСоединение.ОтправитьДляОбработки(запросPOST, ФайлОтвета); отрабатывает, в ошибку не уходит, файл ответа пуст
|
|||
16
Ёпрст
11.12.19
✎
14:23
|
(15)
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Cообщить(HTTPОтвет.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8),СтатусСообщения.Внимание); |
|||
17
Ёпрст
11.12.19
✎
14:24
|
Ну и HTTPОтвет.КодСостояния = ?
|
|||
18
Belarus
11.12.19
✎
14:25
|
В файл пришел ответ: {"Message":"Authorization has been denied for this request."}
|
|||
19
Ёпрст
11.12.19
✎
14:25
|
(18) делай выводы..
|
|||
20
Ёпрст
11.12.19
✎
14:27
|
и если делаешь в заголовках
"application/x-www-form-urlencoded" то хотя бы строку запроса кодируй: Стр= КодироватьСтроку(Стр, СпособКодированияСтроки.КодировкаURL); |
|||
21
Belarus
11.12.19
✎
14:54
|
сейчас немного другая проблема:
запрос уходит на : HTTPСоединение = Новый HTTPСоединение("api.express-pay.by/",, "логин", "пароль"); а вот в файле ответа адрес без api. : https://express-pay.by/v1/invoices?token=%7B4a........404%7D |
|||
22
Ёпрст
11.12.19
✎
14:57
|
(21) выкини / оттуда
|
|||
23
dmpl
11.12.19
✎
14:58
|
(21) Ну значит надо новое соединение создавать.
|
|||
24
Belarus
11.12.19
✎
14:59
|
(22) откуда?
|
|||
25
Ёпрст
11.12.19
✎
15:07
|
(24) by/"
|
|||
26
Belarus
11.12.19
✎
15:14
|
(25) так api нужно
|
|||
27
Belarus
11.12.19
✎
15:15
|
(23) зачем?
|
|||
28
Ёпрст
11.12.19
✎
15:16
|
(26) чего нужно ?
|
|||
29
dmpl
11.12.19
✎
15:17
|
(27) Адрес сервера же другой - значит и соединение должно быть другое.
|
|||
30
Belarus
11.12.19
✎
15:23
|
запрос идет сюда:
HTTPСоединение = Новый HTTPСоединение("api.express-pay.by"); //создаем запрос данных методом POST запросPOST = Новый HTTPЗапрос("/v1/invoices?token={"+Token+"}"); // Адрес ресурса //обязательный заголовок тела запроса запросPOST.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded"); //Здесь задаем текст нашей отформатированной строки + задаем формат сроки запросPOST.УстановитьТелоИзСтроки(Стр, "utf-8", ИспользованиеByteOrderMark.НеИспользовать); В файле ответа: <head><title>Document Moved</title></head> <body><h1>Object Moved</h1>This document may be found <a HREF="https://express-pay.by/v1/invoices?token=%7B4a...........404%7D">here</a></body> т.е. https://express-pay.by - api нет |
|||
31
Ёпрст
11.12.19
✎
15:24
|
(30) и че ? Ну нет и нет, там можно любой мусор в ответ пихапть
|
|||
32
Ёпрст
11.12.19
✎
15:25
|
и там всего лишь говорится, что свой счет можешь посмотреть по ссылке ниже
|
|||
33
Ёпрст
11.12.19
✎
15:25
|
причем тут сервис по api ?
|
|||
34
Ёпрст
11.12.19
✎
15:26
|
могли бы и такой ответ вернуть
<body><h1>Object Moved</h1>This document may be found <a HREF="https://vasidoma.net/invoices?token=%7B4a...........404%7D">here</a></body>; |
|||
35
Ёпрст
11.12.19
✎
15:26
|
Не догоняешь, не ?
|
|||
36
Belarus
11.12.19
✎
15:31
|
(35) нет... ок... ответ мусор... но тогда не работает
|
|||
37
Ёпрст
11.12.19
✎
15:32
|
(36) почему не работает ?
Что запросил, то и в ответ пришло |
|||
38
Ёпрст
11.12.19
✎
15:33
|
Там же в ответ дан ясный - объект перемещен, можешь посмотреть его по ссылке ....
|
|||
39
Ёпрст
11.12.19
✎
15:34
|
тем более, сам же задаешь :
"ReturnInvoiceUrl=1"; |
|||
40
Belarus
11.12.19
✎
15:47
|
) Смешно вам
|
|||
41
dmpl
11.12.19
✎
16:00
|
(36) Код, наверняка, 302. Тогда смотри заголовок ответа Location, ЕМНИП.
|
|||
42
Ёпрст
11.12.19
✎
16:55
|
и..приведи полный текст что ле..
|
|||
43
Ёпрст
11.12.19
✎
16:55
|
кода своего
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |