2015-02-25 4 views
0

В настоящее время я пытаюсь отправить запрос POST в API, но я не могу об этом подумать.Как отправить «правильный» запрос POST в API

Что мне нужно сделать, это отправить запрос POST, как описано ниже:

POST /v2/sessions HTTP/1.1 
Host: api.etilbudsavis.dk 
Content-Type: application/json 
Accept: application/json 
{ 
    "api_key": "YOUR_APP_KEY" 
} 

И это один из способов, я пытался справиться с этим с помощью завивки библиотеки:

$curl = curl_init("https://api.etilbudsavis.dk/v2/sessions"); 

$postData = array(
     'api_key' => '{'.$api_key.'}' 
); 

curl_setopt_array($curl, array(
    CURLOPT_POST => TRUE, 
    CURLOPT_HTTPHEADER => array(
     "Host: localhost", 
     "Content-Type: application/json", 
     "Accept: application/json", 
     "Origin: localhost"), 
    CURLOPT_POSTFIELDS => json_encode($postData) 
)); 

$response = curl_exec($curl); 
if($response === FALSE){ 
    echo 'Error<br>'; 
} 


$responseData = json_decode($response, TRUE); 

// Print the date from the response 
print_r($responseData); 

print_r(curl_error($curl)); 

Мой вывод в браузере:

Error 
SSL certificate problem: unable to get local issuer certificate 

Я надеюсь, что кто-то может мне помочь.

Любая помощь будет принята с благодарностью.

+1

Что означает 'print_r (curl_error ($ curl));' give? Вы * можете * также хотеть иметь 'CURLOPT_RETURNTRANSFER' в вашем' curl_setopt_array() 'для последующего использования. –

+0

Я ничего не дал мне раньше (из-за смерти («Ошибка»)), но я сейчас обновил вопрос и написал, что возвращает print_r. – Langkiller

+0

Попробуйте добавить 'CURLOPT_SSL_VERIFYPEER => FALSE' в свой' curl_setopt_array() '- это приводит к некоторым рискам безопасности ... –

ответ

1

Вы отправляете фиктивный заголовок Host:.

Этот заголовок предназначен для указания серверу, на котором размещается несколько виртуальных хостов, на одном IP-адресе, для которого предназначен призрак. Curl установит этот заголовок для вас автоматически и должен быть только переопределен вручную, если вы пытаетесь обойти DNS для разработки/тестирования адресата.

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