|   |   | 
| 
 | 404 ошибка при http запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        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 Не пойму в чем дело. | |||
| 1
    
        acht 23.09.20✎ 15:30 | 
        Берешь фиддлер, смотришь, сравниваешь     | |||
| 2
    
        Melcor 23.09.20✎ 15:32 | 
        (1) Спасибо за мысль, попробую разобраться     | |||
| 3
    
        Melcor 23.09.20✎ 15:35 | 
        Есть ощущение, что проблема в порте, т.к. другие запросы где порт не указываю, работают отлично     | |||
| 4
    
        Melcor 23.09.20✎ 15:56 | 
        Глянул в фидлере, и когда делаю запрос через 1С, то почему-то нет передаваемых заголовков (     | |||
| 5
    
        Melcor 23.09.20✎ 15:59 | 
        и через 1с есть в хедере заголовок Proxy-Authorization: NTLM 
 Не совсем уверен, что он там должен быть Но не понятно почему он есть | |||
| 6
    
        sitex naïve 23.09.20✎ 16:00 | 
        (4) А смотри как ты делаешь в просто в браузере . зачем тебе смотреть как в 1С.     | |||
| 7
    
        sitex naïve 23.09.20✎ 16:01 | 
        (0) Тебе же не шлет ответ 401. ошибка авторизации. Значит дело в Запрос     | |||
| 8
    
        Melcor 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 | |||
| 9
    
        Melcor 23.09.20✎ 16:02 | 
        (7) шлет 404     | |||
| 10
    
        sitex naïve 23.09.20✎ 16:10 | 
        (8) Покажи заголовки postmane. (ест-но что связанно авторизацией замени ******* )     | |||
| 11
    
        Melcor 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с-ине выходит ? | |||
| 13
    
        polosov 23.09.20✎ 16:15 | 
        (0)  Ресурс = "/0101010101010101/Transaction";
 Попробуй слеш поставить в конце ресурса. Т.е. Ресурс = "/0101010101010101/Transaction/"; | |||
| 14
    
        arsik гуру 23.09.20✎ 16:18 | 
        Сделай так.
 Новый HTTPСоединение(АдресСервера,2158,,,Новый ИнтернетПрокси(Ложь),,SSL); | |||
| 15
    
        Melcor 23.09.20✎ 16:21 | 
        (13) так не работает
 (14) та же ошибка | |||
| 16
    
        Melcor 23.09.20✎ 16:23 | 
        (12) Да, точно     | |||
| 17
    
        arsik гуру 23.09.20✎ 16:24 | 
        (15) Странно.
 Proxy-Authorization: NTLM TlRMTVNTUAAAAAAB7IIogUABQArAAAAAwADACgAAAKAGFKAA5JTkVM - указывает, что он через прокси пытается пролезть. | |||
| 18
    
        sitex naïve 23.09.20✎ 16:25 | 
        У него авторизация  API-MicroPay-v2_19.doc читал там что написано ?     | |||
| 19
    
        sitex naïve 23.09.20✎ 16:26 | 
        +(18) У него вроде как авторизация проходит.     | |||
| 20
    
        sitex naïve 23.09.20✎ 16:27 | 
        (0) Ответ -->>> Пример сообщения от ККТ об ошибке при попытке хоста считать несуществующий документ веб-интерфейса ККТ.     | |||
| 21
    
        Melcor 23.09.20✎ 16:35 | 
        (20) Но почему через постман проходит оплата, а через 1С нет, хотя запросы одинаковые     | |||
| 22
    
        sitex naïve 23.09.20✎ 16:38 | 
        (21) Может где пробелы закрались в СтрокаJS.     | |||
| 23
    
        Ёпрст гуру 23.09.20✎ 16:38 | 
        (0) а почему ты в ноль пишешь про POST , а сам делаешь GET ?     | |||
| 24
    
        Melcor 23.09.20✎ 16:40 | 
        (23) пост же Запрос.УстановитьТелоИзСтроки(СтрокаJS);     | |||
| 25
    
        Ёпрст гуру 23.09.20✎ 16:41 | 
        (24) неа...
 Соединение.Получить(Запрос); //это GET Соедиенние.ОтправитьДляОбработки (Запрос) //'nj PОST | |||
| 26
    
        polosov 23.09.20✎ 16:41 | 
        (24) Что у тебя в СтрокаJS?
 Я с твоим кодом, но с левым паролем и именем пользователя получаю 401. | |||
| 27
    
        sitex naïve 23.09.20✎ 16:42 | 
        (25) +     | |||
| 28
    
        Melcor 23.09.20✎ 16:42 | 
        (23) На сколько я знаю отличие пост от гет только в наличие тела запроса, или я что-то упустил? Другие запросы отлично работают     | |||
| 29
    
        Melcor 23.09.20✎ 16:43 | 
        (25) А как тогда правильно пост запрос отправить?     | |||
| 30
    
        Ёпрст гуру 23.09.20✎ 16:45 | 
        (29) замени получить на ОтправитьДляОбработки..хотя, не спасёт, по идее     | |||
| 31
    
        Melcor 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=васяи т.п ?     | |||
| 34
    
        Melcor 23.09.20✎ 16:48 | 
        (33) ну судя по мануалу, да     | |||
| 35
    
        Melcor 23.09.20✎ 16:52 | 
        (30) Ты мой золотой! ОтправитьДляОбработки работает, на куче ресурсов до этого через Получить отрабатывало, а сдесь промашка. Спасибо огромное!     | |||
| 36
    
        Ёпрст гуру 23.09.20✎ 16:54 | 
        (35) на многих сайтах стоит заглушка для этого, и там да, пофик что прилетело, пост или гет     | |||
| 37
    
        palsergeich 23.09.20✎ 16:59 | 
        (28) В Гет - может быть тело. Раньше было нельзя. сейчас иожно.
 Post и Get - это разные обработчики как минимум на стороне принимающего сервиса. Обработчика get просто может и не быть | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |