|
Ошибка при выполнении HTTP Запроса | ☑ | ||
---|---|---|---|---|
0
Ник080808
17.08.22
✎
09:27
|
Есть web сервис покупателя. На 10 платформе получали заказы через http запрос и горя не знали. обновились на Платформа 8.3.18.1334. Теперь Ответ.ПолучитьТелоКакСтроку() возвращает:
<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><S:Fault xmlns:ns3="http://www.w3.org/2003/05/soap-envelope" xmlns=""><faultcode>S:Client</faultcode><faultstring>Couldn't create SOAP message due to exception: XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: Content is not allowed in prolog.</faultstring></S:Fault></S:Body></S:Envelope> Попробовал через Postman - выдает корректные данные. Восстановил копию на 10 платформе - работает нормально. Откатывать платформу или переходить на другую пока руководство не даст, ибо 500 пользователей, только этот переход выдохнули. Есть кто сталкивался с такой ошибкой? |
|||
1
vde69
17.08.22
✎
09:31
|
ИХМО 18 платформа не удачная (слишком много косяков)
попробуй 20 |
|||
2
МКК
17.08.22
✎
09:31
|
Я ответа не знаю, но вот есть типа такого РаскодироватьСтроку(Ответ.ПолучитьТелоКакСтроку(), СпособКодированияСтроки.КодировкаURL)
|
|||
3
Ник080808
17.08.22
✎
09:34
|
(1) платформу поменять не вариант пока.
|
|||
4
Ник080808
17.08.22
✎
09:34
|
(2) не получилось(((
|
|||
5
Ник080808
17.08.22
✎
09:35
|
а есть какие то сторонние сервисы библиотеки которые можно прикрутить к 1с?
|
|||
6
Kassern
17.08.22
✎
09:38
|
(0) код ответа 200 приходит?
|
|||
7
Kassern
17.08.22
✎
09:39
|
"ибо 500 пользователей" - и без тестового контура?
|
|||
8
Ник080808
17.08.22
✎
09:40
|
(6) код ответа - 500; (7) у нас 4 1сника на 500 пользователей. в хлам переписанная комплексная автоматизация 1.0 какой тестовый контур?)
|
|||
9
Kassern
17.08.22
✎
09:43
|
(8) а на 10ой платформе ответ 200 так? Показывайте уже как запрос шлете. адрес, аунтификацию можно обезличить
|
|||
10
Kassern
17.08.22
✎
09:48
|
можно еще сравнить что вы отправляете из 10ой платформы и что отправляется из 18 через какой нибудь мониторинг
|
|||
11
Ник080808
17.08.22
✎
09:56
|
(9) а на 10ой платформе ответ 200 так? - да, код 200
Соединение = Новый HTTPСоединение("*****",,,,,60,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/wsedi/services/platform",ЗаголовокЗапросаHTTP(Метод)); Запрос.УстановитьТелоИзСтроки(ТекстЗапроса); Ответ = Соединение.ОтправитьДляОбработки(Запрос); ОтветXML = Ответ.ПолучитьТелоКакСтроку(); СтруктураXML = ПрочитатьСтрокуXML(ОтветXML); Где ЗаголовокЗапросаHTTP(Метод) - ЗаголовокЗапросаHTTP = Новый Соответствие(); ЗаголовокЗапросаHTTP.Вставить("Content-Type", "text/xml;charset=UTF-8"); ЗаголовокЗапросаHTTP.Вставить("SOAPAction", "urn:wsedi/ListMBEx"); ЗаголовокЗапросаHTTP.Вставить("Host", "******"); ЗаголовокЗапросаHTTP.Вставить("Content-type", "text/xml"); Возврат ЗаголовокЗапросаHTTP; |
|||
12
Ник080808
17.08.22
✎
09:57
|
ТекстЗапроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:wsedi"> <soapenv:Header/> <soapenv:Body> <urn:listMBEx> <name>123</name> <password>Admin</password> <documentType>ORDER</documentType> <dateFrom>2022-07-01</dateFrom> <dateTo>2022-07-14</dateTo> </urn:listMBEx> </soapenv:Body> </soapenv:Envelope> |
|||
13
Ник080808
17.08.22
✎
09:58
|
(10) а вот тут не понял. какой мониторинг?
|
|||
14
Kassern
17.08.22
✎
10:00
|
(13) всякие сниферы, фидлер тот же через прокси и т.д.
|
|||
15
Ёпрст
17.08.22
✎
10:01
|
(0) BOM
|
|||
16
Kassern
17.08.22
✎
10:04
|
А нужен ли тут http запорс? Я правильно понял, что у вас там именно ВЕБ сервис опубликован со своим wsdl?
Если так, то можно через Новый WSОпределения, Новый WSПрокси работать с сервисом |
|||
17
Ёпрст
17.08.22
✎
10:04
|
+15 ИспользованиеByteOrderMark.НеИспользовать воткни в УстановитьТелоИзСтроки
|
|||
18
Ник080808
17.08.22
✎
10:08
|
(17) Ты Гений! Правда, я понял это еще когда ты мне с запросом на 7ке 12 лет назад помог) Спасибо огромное! Все заработало
|
|||
19
Kassern
17.08.22
✎
10:10
|
(18) ну вот, а то все платформа виновата... У вас же штат 4 программиста, неужели никто с БОМ не сталкивался?)
|
|||
20
Ник080808
17.08.22
✎
10:13
|
(19) нит. проносило как то до этого). Вообще я мало работал с http запросами. надо будет осваивать их, а то без них никуда.
|
|||
21
Kassern
17.08.22
✎
10:17
|
(20) Я все же рекомендую вам за ВЕБ сервисы еще почитать, Если я правильно понял, то вашу задачу можно решить в (16) Без всяких HTTPСоединение
Вот небольшой кусочек кода для примера: Определение = Новый WSОпределения("Путь до wsdl",,,,,ssl); Прокси = Новый WSПрокси(Определение, "http://Сервер/delivery", "DocumentData", "DocumentDataSoap"); Прокси.Пользователь="Логин"; Прокси.Пароль="Пароль"; МассивДокументов = Прокси.GetData(ИДПользователя); |
|||
22
Ник080808
17.08.22
✎
10:32
|
(21) спасибо. посмотрю.
|
|||
23
Kassern
17.08.22
✎
10:34
|
(22) Вот тут можете глянуть инфу https://infostart.ru/1c/articles/327963/
|
|||
24
rozer76
17.08.22
✎
10:39
|
+ (21) кста я тоже на вдуплил зачем ТС по http шлет soap-xml а не нативно через WSПрокси ))
|
|||
25
Ник080808
17.08.22
✎
10:44
|
(23) спасибо большое. (24) на это две причины: 1) обработку готовую взял у клиентов и просто допилил свои данные; 2) потому что не шарит как надо) будем учится.
|
|||
26
rozer76
17.08.22
✎
10:47
|
+ (17) ну видимо на том конце PHP который не умеет БОМ... (19) так он же 1сник, откуда ему знать - это должно быть прописано в апи сервиса )
|
|||
27
Kassern
17.08.22
✎
10:52
|
(26) "откуда ему знать" - методом проб и ошибок.
Типичные ошибки при http запросе 1) Защищенное соединение /порт 2) Корявый адрес сервера (пихают http и прочую фигню) 3) Корявый адрес ресурса (урл кодировка, слеши и т.д.) 4) Корявые заголовки / аунтификация 5) Не верный метод (GET,POST,PUT...) 6) Корявое тело запроса / БОМ |
|||
28
Ник080808
17.08.22
✎
10:57
|
я тут с вами уже статью по http запросам запилил в свою базу знаний.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |