AsviS
@AsviS
начинающий

Как прочитать ответ от сервиса?

Мне один сервис присылает вот такое POST'ом:

Array
(
    [qw] => qaz
    [qwerty] => wsx
    [qwerty2] => edc
    [qwerty3] => rfv
    [qwerty4] => tgb
    [qwerty5] => yhn
    [qwerty6] => 
)


делаю так:

parse_str(file_get_contents("php://input"),$post_vars);

$qw = $post_vars['qw'];
$qwerty = $post_vars['qwerty'];
$qwerty2 = $post_vars['qwerty2'];
$qwerty3 = $post_vars['qwerty3'];
$qwerty4 = $post_vars['qwerty4'];
$qwerty5 = $post_vars['qwerty5'];
$qwerty6 = $post_vars['qwerty6'];


и пытаюсь записать в БД, но пишет просто пустоту,

а вот когда пишу все это дело в .txt файл вот так:

file_put_contents('test.txt', file_get_contents('php://input'));


то в файл приходит:

Array
(
    [qw] => qaz
    [qwerty] => wsx
    [qwerty2] => edc
    [qwerty3] => rfv
    [qwerty4] => tgb
    [qwerty5] => yhn
    [qwerty6] => 
)


что я делаю не так??
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Я правильно понял, что сервис присылает данные в формате var_dump'а?
В комментариях Melkij указал на то, что это скорее вывод print_r.
Неожиданно, но прецеденты уже бывали.

Обратный парсер для var_dump от коллег со StackOverflow.
Обратный парсер для print_r от комментаторов php.net и еще один от StackOverflow'цев.

Также, возможно имеет место быть неверное чтение документации.
Например, описание указанного сервиса вообще не подозревает подобного формата ответа:

POST - An HTTP POST to a URL of your choosing with transaction details (in either an XML or CSV format)
GET - An HTTP GET to a URL of your choosing with transaction detail you define in the query string.


Уважаемые разработчики, столкнувшиеся с аналогичными проблемами в будущем! Убедитесь, что вы правильно поняли документацию и необходимость в подобных инструментах парсинга действительно имеется (;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
то в файл приходит:

Значит именно этот мусор вам и отправляют. Вместо нормально кодированного application/x-www-form-urlencoded. Пинайте разработчиков этого сервиса, чтобы исправили этот идиотизм.

Ну или пишите парсер-костыль.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы