Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

404 ошибка при http запросе

404 ошибка при http запросе
Я
   Melcor
 
23.09.20 - 15:24
Доброго дня.
Пытаюсь сделать POST запрос:
    АдресСервера = "micropay.e-ofd.ru";
    Ресурс = "/0101010101010101/Transaction";
    ИмяПользователя = "11111111111";
    Пароль = "12121212121212121212";
    
    СтрокаАвторизации = ПолучитьBase64СтрокуИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзСтроки(""+ИмяПользователя+":"+Пароль,КодировкаТекста.UTF8,Ложь));    
    
    SSL = Новый ЗащищенноеСоединениеOpenSSL;
    
    Соединение = Новый HTTPСоединение(АдресСервера,2158,,,,,SSL);
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
    Заголовки.Вставить("Authorization", "Basic "+СтрокаАвторизации);
    
    Запрос = Новый HTTPЗапрос(Ресурс,Заголовки);
    Запрос.УстановитьТелоИзСтроки(СтрокаJS);
    
    
    Ответ = Соединение.Получить(Запрос);

но выходит ошибка {"kktNumber":"0101010101010101","Error":{"ErrorCode":404,"ErrorMessage":"Нет такого ресурса"}}

когда делаю в Postman, то все прекрасно отрабатывает:
https://micropay.e-ofd.ru:2158/0101010101010101/Transaction

Не пойму в чем дело.
   acht
 
1 - 23.09.20 - 15:30
Берешь фиддлер, смотришь, сравниваешь
   Melcor
 
2 - 23.09.20 - 15:32
(1) Спасибо за мысль, попробую разобраться
   Melcor
 
3 - 23.09.20 - 15:35
Есть ощущение, что проблема в порте, т.к. другие запросы где порт не указываю, работают отлично
   Melcor
 
4 - 23.09.20 - 15:56
Глянул в фидлере, и когда делаю запрос через 1С, то почему-то нет передаваемых заголовков (
   Melcor
 
5 - 23.09.20 - 15:59
и через 1с есть в хедере заголовок Proxy-Authorization: NTLM 
Не совсем уверен, что он там должен быть
Но не понятно почему он есть
   sitex
 
6 - 23.09.20 - 16:00
(4) А смотри как ты делаешь в просто в браузере . зачем тебе смотреть как в 1С.
   sitex
 
7 - 23.09.20 - 16:01
(0) Тебе же не шлет ответ 401. ошибка авторизации. Значит дело в Запрос
   Melcor
 
8 - 23.09.20 - 16:02
(6) я смотрю в постмане
вот из постмана хедер
CONNECT micropay.e-ofd.ru:2158 HTTP/1.1
Content-Type: application/json
User-Agent: PostmanRuntime/7.26.5
Accept: */*
Cache-Control: no-cache
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
host: micropay.e-ofd.ru:2158

а вот из 1с


CONNECT micropay.e-ofd.ru:2158 HTTP/1.1
Host: micropay.e-ofd.ru:2158
Proxy-Authorization: NTLM TlRMTVNTUAAAAAAB7IIogUABQArAAAAAwADACgAAAKAGFKAA5JTkVM
User-Agent: 1C+Enterprise/8.3
Connection: Keep-Alive
   Melcor
 
9 - 23.09.20 - 16:02
(7) шлет 404
   sitex
 
10 - 23.09.20 - 16:10
(8) Покажи заголовки postmane. (ест-но что связанно авторизацией замени ******* )
   Melcor
 
11 - 23.09.20 - 16:11
POST /0101010101010101/Transaction HTTP/1.1
Host: micropay.e-ofd.ru:2158
Authorization: Basic NzcyMTk1NjpFMjMyOTOS03QTBQ2RkMtNDNi04I4OTg5QjI=
Content-Type: application/json
cache-control: no-cache
Postman-Token: 1585-e6-9256-ec47e133d
   Ёпрст
 
12 - 23.09.20 - 16:14
(11) и ?
СтрокаАторизации  у тя точно "NzcyMTk1NjpFMjMyOTOS03QTBQ2RkMtNDNi04I4OTg5QjI=" в 1с-ине выходит ?
   polosov
 
13 - 23.09.20 - 16:15
(0)  Ресурс = "/0101010101010101/Transaction";
Попробуй слеш поставить в конце ресурса.
Т.е.  Ресурс = "/0101010101010101/Transaction/";
   arsik
 
14 - 23.09.20 - 16:18
Сделай так.
Новый HTTPСоединение(АдресСервера,2158,,,Новый ИнтернетПрокси(Ложь),,SSL);
   Melcor
 
15 - 23.09.20 - 16:21
(13) так не работает
(14) та же ошибка
   Melcor
 
16 - 23.09.20 - 16:23
(12) Да, точно
   arsik
 
17 - 23.09.20 - 16:24
(15) Странно.
Proxy-Authorization: NTLM TlRMTVNTUAAAAAAB7IIogUABQArAAAAAwADACgAAAKAGFKAA5JTkVM - указывает, что он через прокси пытается пролезть.
   sitex
 
18 - 23.09.20 - 16:25
У него авторизация  API-MicroPay-v2_19.doc читал там что написано ?
   sitex
 
19 - 23.09.20 - 16:26
+(18) У него вроде как авторизация проходит.
   sitex
 
20 - 23.09.20 - 16:27
(0) Ответ -->>> Пример сообщения от ККТ об ошибке при попытке хоста считать несуществующий документ веб-интерфейса ККТ.
   Melcor
 
21 - 23.09.20 - 16:35
(20) Но почему через постман проходит оплата, а через 1С нет, хотя запросы одинаковые
   sitex
 
22 - 23.09.20 - 16:38
(21) Может где пробелы закрались в СтрокаJS.
   Ёпрст
 
23 - 23.09.20 - 16:38
(0) а почему ты в ноль пишешь про POST , а сам делаешь GET ?
   Melcor
 
24 - 23.09.20 - 16:40
(23) пост же Запрос.УстановитьТелоИзСтроки(СтрокаJS);
   Ёпрст
 
25 - 23.09.20 - 16:41
(24) неа...

Соединение.Получить(Запрос);//это GET


Соедиенние.ОтправитьДляОбработки (Запрос)//'nj PОST
   polosov
 
26 - 23.09.20 - 16:41
(24) Что у тебя в СтрокаJS?
Я с твоим кодом, но с левым паролем и именем пользователя получаю 401.
   sitex
 
27 - 23.09.20 - 16:42
(25) +
   Melcor
 
28 - 23.09.20 - 16:42
(23) На сколько я знаю отличие пост от гет только в наличие тела запроса, или я что-то упустил? Другие запросы отлично работают
   Melcor
 
29 - 23.09.20 - 16:43
(25) А как тогда правильно пост запрос отправить?
   Ёпрст
 
30 - 23.09.20 - 16:45
(29) замени получить на ОтправитьДляОбработки..хотя, не спасёт, по идее
 
 Рекламное место пустует
   Melcor
 
31 - 23.09.20 - 16:45
(26)
{
 "bill": {
  "userPass": "29",
  "operationType": "1",
  "ecashTotalSum": "1",
  "buyerAddress": "79009009898",
  "flagsSNO": "1",
  "items": [
   {
    "name": "Текстиль женский/Пальто",
    "price": "1",
    "quantity": "1",
    "VATrate": "1"
   }
  ]
}
}
   Ёпрст
 
32 - 23.09.20 - 16:45
У тя какая то хня с авторизацией. Где-то еще должен задать логин и пароль на этом сайте
   Ёпрст
 
33 - 23.09.20 - 16:46
Точно он в заголовках передается, а не параметром в строку соединения, типа ?password=васяи т.п ?
   Melcor
 
34 - 23.09.20 - 16:48
(33) ну судя по мануалу, да
   Melcor
 
35 - 23.09.20 - 16:52
(30) Ты мой золотой! ОтправитьДляОбработки работает, на куче ресурсов до этого через Получить отрабатывало, а сдесь промашка. Спасибо огромное!
   Ёпрст
 
36 - 23.09.20 - 16:54
(35) на многих сайтах стоит заглушка для этого, и там да, пофик что прилетело, пост или гет
   palsergeich
 
37 - 23.09.20 - 16:59
(28) В Гет - может быть тело. Раньше было нельзя. сейчас иожно.
Post и Get  - это разные обработчики как минимум на стороне принимающего сервиса.
Обработчика get просто может и не быть


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.