API를 작성하는 중이지만 cURL로 테스트 할 때 몇 가지 문제가 발생했습니다.JSON을 게시 할 때 cURL 헤더 문제가 발생했습니다.
내 코드는 다음과 같습니다의 URL 엔드 포인트에서
$people = array(array('name' => urlencode('casper'),
'shoesize' => urlencode(41)
),
array('name' => urlencode('charlotte'),
'activated' => urlencode(1)
)
);
$data = http_build_query(array('data' => json_encode($people)));
$url = '...';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Connection: Keep-Alive'
));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
방법은 단지 $ _POST [ '데이터'] 반환합니다.
내 머리글을 cURL로 설정할 때까지이 방법이 계속 작동합니다. 설정하지 않으면 데이터가 문제없이 전달됩니다.
정확히 무엇이 문제입니까? 당신은 헤더없이 잘 작동한다고 언급하지만, 그들에게 잘못된 것은 무엇입니까? –
@JohnVanDeWeghe OP는 json 데이터를 사용하고 있지만 json 데이터를 올바르게 전송하지 않습니다. 아래 내 대답을 참조하십시오. – alwaysLearn
문제는 요청을 올바르게 처리하기 위해 헤더 유형이 필요하다는 것입니다. 그러나 cURL로 설정할 때 데이터를 보내지 않습니다. – Stromgren