2010-08-18 2 views
3

Я получаю JSON, который я могу получить с помощью ввода php: //, и мне нужно отправить его обратно на другой URL-адрес, но я не уверен, как его отформатировать. Вот как я его получаю:Опубликовать JSON с помощью Curl

$ updates = file_get_contents ("php: // input");

я мог json_decode его, а затем разобрать массив таким образом, что она будет соответствовать нормальной POST-запрос, как, например, как привет = & мира стека = перелива и т.д. Но можно ли передать JSON только в завиток сообщение вроде этого:

curl_setopt($curl_handle, CURLOPT_POST, 1); 
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $updates); 

, а затем клиент может просто ввести php: //, чтобы снова захватить данные? Причина, по которой я спрашиваю, заключается в том, что клиент говорит, что он не получает данные, возможно, он не настроил его правильно. Я заметил, что когда вы делаете что-то подобное с помощью командной строки, вам нужно включить -H в команду, чтобы данные интерпретировались как обычный POST, возможно, есть ли libcurl CURLOPT, который мне нужно установить?

Спасибо!

ответ

1

Ну, ребята, я понял это!

Чтобы отправить сообщение как другой тип контента (то есть .. приложения/JSON или текст/XML) добавить setopt вызов

curl_setopt ($ ч, CURLOPT_HTTPHEADERS, массив ("Content-Type : application/json '));

0

Вы можете также использовать

curl --silent --request POST --header 'Content-Type: application/json' \ 
--data $updates \ 
-k http://URL_to_which_you_want_to_post 
Смежные вопросы