#php #curl
Вопрос:
Когда я выполняю команду curl через консоль, я получаю желаемый результат, но с помощью php я не могу организовать такую функциональность. Я получаю NULL в качестве ответа сервера. Пожалуйста, помогите мне разобраться в этой проблеме.
это работает:
curl -v POST -F "APIKEY=***" -F "languageCode=en" -F "title=123" -F "author=Silichshev" -F "coordinator=Silichsev" -F "file=@123-85.txt" https://***
Это не работает:
$url_1 = "https://***"; $post_data = [ 'APIKEY' =gt; '***', 'languageCode' =gt; "en", 'title' =gt; "123", 'author' =gt; "Silichshev", 'coordinator' =gt; "Silichshev", 'file' =gt; "@123-85.txt" ]; $headers_1 =array( "Content-Type: multipart/form-data" ); $post_data = http_build_query($post_data); $curl_1 = curl_init(); curl_setopt($curl_1, CURLOPT_HTTPHEADER, $headers_1); curl_setopt($curl_1, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl_1, CURLOPT_VERBOSE, 1); curl_setopt($curl_1, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl_1, CURLOPT_URL, $url_1); curl_setopt($curl_1, CURLOPT_POST, true); $result_1 = curl_exec($curl_1); var_dump(json_decode($result_1,true));
Комментарии:
1. curl_setopt($ch, CURLOPT_FAILONERROR, true); // Требуется, чтобы коды ошибок HTTP сообщались с помощью нашего вызова curl_error($ch) //… curl_exec($ch); если (curl_errno($ch)) { $error_msg = curl_error($ch); } Сначала проверьте ответ на ошибку, возможно, вы сможете понять, что здесь происходит