Имя: Пароль:
1C
 
ответ 302 при POST запросе
0 Bujhm1972
 
20.08.22
14:10
Привет всем.
Проблема похоже пустяковая, но я завис над ней..

В POSTMANе этот запрос отрабатывает нормально :
"https://b2b.marvel.ru/api/GetItems?user=diUser&password=diPassp&secretKey=&packStatus=0&responseFormat=0&updatedSince=24072019&items=<Root><WareItem><ItemId>100-000000031</ItemId></WareItem></Root>"
- возвращает код 200 и нужную инфу в теле ответа.

В 1С выполнение этих строк :

    HTTPСоединение = Новый HTTPСоединение("b2b.marvel.ru",,User ,Pass , , , ,);
    HTTPЗапрос = Новый HTTPЗапрос("https://b2b.marvel.ru/api/GetItems?user=diUser&password=diPassp&secretKey=&packStatus=0&responseFormat=0&updatedSince=24072019&items=<Root><WareItem><ItemId>100-000000031</ItemId></WareItem></Root>");
        Ответ = HTTPСоединение.ОтправитьДляОбработки(Запрос);

возвращает код 302:
и тело ответа = "<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/">here</a>.</h2>
</body></html>"


Может кто-то из мастеров http и web сервисов сможет подсказать решение проблемы?
1 Bujhm1972
 
20.08.22
14:17
результат один и тот же, независимо от наличия и состава заголовков запроса, формата xml или  json... ,
перенаправление на указанный в ответе Path  не помогает
2 Bujhm1972
 
20.08.22
14:19
смена HTTPСоединение.ОтправитьДляОбработки(..
на HTTPСоединение.Получить(..     тоже не меняет ответ
3 Kassern
 
20.08.22
14:21
(0) Начните ресурс в HTTP запросе с "/api...
Сайт у вас https, где у вас в  HTTPСоединение прописан SSL?
4 Bujhm1972
 
20.08.22
14:27
Cпасибо, пробовал уже

вариант:
    HTTPСоединение = Новый HTTPСоединение("b2b.marvel.ru",,User ,Pass , , ,SSL,);
    HTTPЗапрос = Новый HTTPЗапрос("/api/GetItems?user=diUser&password=diPassp&secretKey=&packStatus=0&responseFormat=0&updatedSince=24072019&items=<Root><WareItem><ItemId>100-000000031</ItemId></WareItem></Root>");

дает тот же код ответа 302
и лишь  значение PATH в теле ответа меняется на:

<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be found <a HREF="https://b2b.marvel.ru/api/GetItems?user=dionis03&password=nSb5_DvR7p&secretKey=&packStatus=0&responseFormat=0&updatedSince=24072019&items=%3CRoot%3E%3CWareItem%3E%3CItemId%3E100-000000031%3C/ItemId%3E%3C/WareItem%3E%3C/Root%3E">here</a></body>
5 Fram
 
20.08.22
14:36
(4) SSL = ?
6 Bujhm1972
 
20.08.22
14:37
SSL =  Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(),Новый СертификатыУдостоверяющихЦентровWindows())
7 Bujhm1972
 
20.08.22
14:38
POSTMAN возвращает нужный ответ , не требуя сертификата
8 Kassern
 
20.08.22
14:39
(4) порт попробуйте указать нужный, а в ССЛ просто написать Новый ЗащищенноеСоединениеOpenSSL();
(7) Потому что он сам его берет из винды, а в 1с это нужно указать.
9 Kassern
 
20.08.22
14:41
Ну и по уму конечно, такое дело лучше в тело запроса пихать, а не в строку...
Еще попробуйте ресурс в запросе урл кодировать
10 Bujhm1972
 
20.08.22
14:44
всем большое спасибо,
помогло :
"в ССЛ просто написать Новый ЗащищенноеСоединениеOpenSSL()"


а я уже столько часов копаю не там....
11 Bujhm1972
 
20.08.22
14:47
"Ну и по уму конечно, такое дело лучше в тело запроса пихать, а не в строку..."

в рабочем варианте так и  сделал, вышеприведенный вариант - тестовый ,

еще раз спасибо!
Ошибка? Это не ошибка, это системная функция.