2012-02-08 2 views
0

Как получить URL-адрес с заголовком Content-Type, установленным в application/json.Как набрать URL-адрес при использовании запроса POST в php

Мой код возвращает «запрос не успешно» (другая сторона условия). Я новичок, поэтому, пожалуйста, помогите мне понять, почему это не работает.

Код:

$data_string=json data here;  
    $ch = curl_init('www.here is url');                  
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));                                 
    if(curl_exec($ch)) 
     echo "request successfull"; 
    else 
     echo "request not successfull" 

    curl_close($ch); 
+0

Почему вы посылаете, что HTTPHeader? Использование 'json_decode ($ data_string, true)' должно выполнять работу отлично, не так ли? – Vyktor

+1

Да, Джейсон был в порядке, проблема была в том, что я нажимал ... у них есть сертификат SSL, срок действия которого истек. теперь все в порядке и работает. – Natasha

ответ

3
curl_setopt($ch, CURLOPT_POST, true); 

все, что вам нужно. Пользовательский запрос предназначен для менее используемых HTTP-глаголов. Для того, чтобы выяснить, почему локон запрос не удалось, используйте

echo curl_error($ch); 
+0

by curl_error ($ ch); Я получаю эту ошибку в SSL-сертификате, убедитесь, что сертификат CA в порядке. Подробности: ошибка: 14090086: SSL-процедуры: SSL3_GET_SERVER_CERTIFICATE: проверка сертификата не выполнена – Natasha

+0

Либо ваша установка curl не имеет списка CAs для проверки, либо на сайте, на который вы нажимаете, есть недопустимый сертификат. –

+0

Если вы можете открыть эту страницу в браузере, не получив предупреждения? –

1

попробовать так:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
1

завиток установка не доверять любой УЦ, при этом он не будет доверять сертификату любого веб-сервера.

Попробуйте принять любому SSL

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

Правильного исправление по этой ссылке

http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

Надеется, что это помогает

+0

Спасибо, я понял. – Natasha

Смежные вопросы