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

123 4
Ilya74
На сайте с 12.06.2008
Offline
352
#11
webinfo #:

То есть? Расскажите мне, чего я не знаю про $_POST.

Вы видимо не совсем понимаете суть вопроса. Речь идёт не о глобальной переменной $_POST, содержащей распарсенные пары параметр=значение. ТС нужно передать не пару параметр=значение, а XML-документ.

Ничего не мешает через CURL методом POST передавать, к примеру, JSON или XML-документ и затем через php://input получать необратанным этот документ и разбирать с помощью simplexml или json_decode. Содержимое POST определяет Content-Type. 

⚡️ Хостинг и VPS в Москве, Новосибирске, Нидерландах, США ( https://x5x.host )
W1
На сайте с 22.01.2021
Offline
283
#12
Ilya74 #:
Ничего не мешает через CURL методом POST передавать, к примеру, JSON или XML-документ

Ничто не мешает передать эту строку как значение поля и не заниматься созданием костылей и подобных топиков.

Мой форум - https://webinfo.guru –Там я всегда на связи
T7
На сайте с 19.09.2018
Offline
63
#13
webinfo #:
что использование  $_POST в данном случае некорректно

Вы первый упомянули $_POST в этом топике. Ну так, навскидку - https://www.google.com/search?q=php+1%D1%81+%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0+%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2+%22php%3A%2F%2Finput%22

php 1с загрузка файлов "php://input" - Поиск в Google
php 1с загрузка файлов "php://input" - Поиск в Google
  • www.google.com
Google использует файлы cookie и данные, чтобы: предоставлять сервисы и обеспечивать их работу, например отслеживать сбои и защищать от спама, мошенничества и других злоупотреблений; анализировать вовлеченность аудитории и статистику сайтов, чтобы узнавать, как пользуются нашими сервисами. Если вы нажмете кнопку "Принимаю", мы будем также...
T7
На сайте с 19.09.2018
Offline
63
#14
webinfo #:
даже само название  POSTFIELDS об этом говорит

Может и так, но и такой вариант есть

  curl_setopt($ch, CURLOPT_INFILE, $fp);
  curl_setopt($ch, CURLOPT_INFILESIZE, $filesize);
  curl_setopt($ch, CURLOPT_PUT, true);
  curl_setopt($ch, CURLOPT_UPLOAD, true);

Так или иначе, вариант отправки/чтения потока  на урл у пхп есть.


W1
На сайте с 22.01.2021
Offline
283
#15
timo-71 #:
Вы первый упомянули $_POST в этом топике

Ну я же его не просто так упомянул, а в связи с тем, что из-за невозможности использования штатного массива приходится использовать костыль в виде  php://input. Хотя, казалось бы чего проще - создай штатное поле и работай с ним. Сервер сам всё сохранит в суперглобальном массиве, бери и пользуйся.

T7
На сайте с 19.09.2018
Offline
63
#16
webinfo #:
приходится использовать костыль в виде  php://input

Это не костыль

 $p = fopen("php://input", "rb"); $re = 0;
while( $data = fread($p, 2048) ) {;
   $re += file_put_contents( $this->dest, $data, FILE_APPEND  );
}

Года 3 назад с пыха спрыгнул на питон. Сейчас нашел . Загузка файла 1с. Просто файлик может быть, например таким:


Полгига, это где то 12-15 тыс позиций с картинками. А так и на шареде работает.

Sly32
На сайте с 29.03.2012
Offline
302
#17
webinfo #:

Ничто не мешает передать эту строку как значение поля и не заниматься созданием костылей и подобных топик

Если вы так говорите - вы слабо понимаете  curl. Далеко не всегда удобно работать с данными формы, часто приходится гонять большие данные, и тогда как раз json - спасение, а что такое json в принципе?

timo-71, давай к нам, дико не хватает питонистов) Даже деньгами зарплату плотют)))

W1
На сайте с 22.01.2021
Offline
283
#18
Sly32 #:
Если вы так говорите - вы слабо понимаете  curl. Далеко не всегда удобно работать с данными формы, часто приходится гонять большие данные

Чего тут можно не понять, растолкуете? Какое неудобство Вы испытаете, если сделать, как было предложено в первом же комментарии?

Ilya74 #:

Попробуйте из интереса XML-документ передать в виде значения параметра, например, параметра xml.

Кстати, ТС даже не понял, о чём речь, кмк.

W1
На сайте с 22.01.2021
Offline
283
#19
krek753 :
'Content-Type: application/xml'

Нужно text/xml, если уж Вы хотите по такой схеме работать. И кодировку проверьте.

krek753
На сайте с 15.12.2008
Offline
104
#20
Передаю я верно все, там код менять не нужно и невозможно, так как интеграция уже проведена.

Хочу подстроиться под уже существующую интеграцию API.

Но принять XML запрос не получается. 

Какие есть еще варианты получить POST запрос XML ?
123 4

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