При отправке запроса с помощью Curl
, используя данный код, при выводе $_POST
получаю пустой массив , если убрать curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
, то приходит, криво, но что-то приходит, так вот, как правильно настроить Curl
для корректной отправки JSON
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt ($ch, CURLOPT_POSTFIELDS, $dataPost);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$headerSent = curl_getinfo($ch, CURLINFO_HEADER_OUT );
curl_close($ch);
return $result;
в $dataPost
{
"ID": 999999999 ,
"Territory": [ "1", "2" ],
"Country": [ "1", "2" ],
"BeginDate": "2018-31-05",
"EndDate": "2019-31-05",
"TripTerm": 90,
"Currency": 978,
"Option": 1,
"Age": [
{
"Category": 1,
"Count": 1
},
{
"Category": 2,
"Count": 1
},
{
"Category": 3,
"Count": 1
},
{
"Category": 4,
"Count": 0
},
{
"Category": 5,
"Count": 0
},
{
"Category": 6,
"Count": 0
},
{
"Category": 7,
"Count": 0
}
]
,
"Summ": 10000
}
$_POST
и должен быть пустой, т.к. он заполняется только если идет запрос с параметризованным телом, например если CURLOPT_POSTFIELDS это ассоциативный массив.
В вашем случае тело запроса есть строка json
поэтому на сервере получить ее можно через
file_get_contents("php://input");
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хочу передать в php, который находится в контейнере, переменные среды, в которых содержится пароль и данные для подключения к mysql
Что лучше использовать при работе с файлами, Что лучше, SplFileObject или fopen и тд