Не выходит получить XML из POST запроса Curl

1 234
W1
На сайте с 22.01.2021
Offline
48
#21
krek753 #:
код менять не нужно и невозможно

Насчёт "не нужно" - это вопрос спорный.  А почему "невозможно"? Нет доступа к серверу?

В любом случае невозможно решить задачу не зная подробностей. Вопрос типа: "Скажите что сделать, но менять ничего нельзя" - нерешаемый.

Когда-нибудь здесь будет форум - https://webinfo.guru –Там я всегда на связи
krek753
На сайте с 15.12.2008
Offline
104
#22
webinfo #:

Насчёт "не нужно" - это вопрос спорный.  А почему "невозможно"? Нет доступа к серверу?

В любом случае невозможно решить задачу не зная подробностей. Вопрос типа: "Скажите что сделать, но менять ничего нельзя" - нерешаемый.

Есть уже работающее API. Запрос выполняется из Postman, ранее уже тестировалась.

Цель такова, чтобы реализовать у себя принимающую строну.
В первом примере это POST запрос сгенереный   Postman. Отправка успешна. А вот в принимающем коде, что-то не так.


Там просто пусто. 

$postData = file_get_contents('php://input');
$xml=simplexml_load_string($postData);

        $file=fopen("route.txt", "a+");
        fwrite($file, "$xml");
        
print_r ($xml);
echo "Принято";
Документация:

Обмен данными в протоколе производится через протокол
HTTP. Передача и прием данных производится в формате XML, с
использованием кодировки UTF-8.

Ответы с сервера должны поступать по протоколу HTTP c кодом
200 и HTTP-заголовком “Content-Type”, имеющим значение
“application/xml; charset=UTF-8”.
Тело XML- ответа должно начинаться с объявления <?xml
version="1.0" encoding="UTF-8"?>. Регистр названий тегов и
атрибутов должен совпадать с регистром из примеров.
XML-ответ в обязательном порядке имеет корневой тег, название
которого должно соответствовать формату
"<НазваниеМетодаResponse>" (например EchoResponse,
SearchTripsResponse) Если ответ корректный, то данные ответа
содержатся во вложенном теге <Body>. Если ответ не
корректный, информация об ошибке должна находиться во 
вложенном теге <Error>, который состоит из кода ошибки в теге
<code> и описания ошибки в теге <message>. Код ошибок в
приложении. Описание - это произвольные текст на русском
языке, поясняющий причину ошибки. Некоторые методы
допускают пустой ответ. Пустой ответ содержит только корневой
тег.

W1
На сайте с 22.01.2021
Offline
48
#23
krek753 #:
Есть уже работающее API

Вы сами на какой стороне? Пользователь API или разработчик API?

krek753
На сайте с 15.12.2008
Offline
104
#24
webinfo #:

Вы сами на какой стороне? Пользователь API или разработчик API?

За тех кто победит))

Всегда был в пользователях.

Но теперь есть необходимость быть принимающей стороной.
т.е. интеграция пользователя на ресурсе реализована по этому протоколу. Есть другие API, чтобы не проводить интеграцию по всем API хочу подружить реализованный протокол со сторонними API. Но для этого нужно получать запросы по реализованному протоколу.

Проблема только в том, как получить эти данные XML.
Запрос приходит пустой, если отловить его var_dump($_POST);

Может это из-за того, что отключен авторизация? Он обращается напрямую к скрипту. 

lutskboy
На сайте с 22.11.2013
Offline
109
#25

сделал по вашему примеру что в первом посте и по-своему и оба варианта работают.

string(50) "SimpleXMLElement Object

(

  [message] => Test

)

"

krek753
На сайте с 15.12.2008
Offline
104
#26
lutskboy #:

сделал по вашему примеру что в первом посте и по-своему и оба варианта работают.

string(50) "SimpleXMLElement Object

(

[message] => Test

)

"

Супер. Тогда получается у меня, что-то не так в настройках PHP ?

подскажите, какая версия PHP ?

lutskboy
На сайте с 22.11.2013
Offline
109
#27

у меня опенсервер. PHP 7.4

посмотрите что у вас приходит

$dataPOST = trim(file_get_contents('php://input'));

file_put_contents(__DIR__.'/log.txt', $dataPOST, FILE_APPEND);
W1
На сайте с 22.01.2021
Offline
48
#28
Мне кажется, вы пытаетесь сделать что-то нелегальное. Очень похоже на фейковый сервис, типа поддельного сайта.
krek753
На сайте с 15.12.2008
Offline
104
#29
lutskboy #:

у меня опенсервер. PHP 7.4

посмотрите что у вас приходит

Лог пустой


у меня  PHP Version 7.3.29

krek753
На сайте с 15.12.2008
Offline
104
#30
webinfo #:
Мне кажется, вы пытаетесь сделать что-то нелегальное. Очень похоже на фейковый сервис, типа поддельного сайта.

что нелегально? Запросы отправляю я,  принимаю я. Выше я описал, зачем нужно. Чтобы через один протокол, подружить разные API.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий