PHP cURL을 사용하여 JSON 데이터를 게시하려고 하면 결과 배열이 비어 있는 문제가 발생할 수 있습니다. . 이 문서에서는 이 문제를 다루고 해결책을 제공합니다.
잘못된 JSON 게시
제공된 코드에서 JSON 데이터 형식이 게시에 적합하지 않습니다. cur_setopt($ch, CURLOPT_POSTFIELDS, array("customer" => $data_string))를 사용하는 대신 전체 데이터 배열을 JSON으로 인코딩하고 이를 페이로드로 게시해야 합니다. "고객" => $data))).
예상치 못한 결과
올바른 JSON 형식을 사용하더라도 print_r($_POST)를 사용하여 게시된 데이터를 검색하는 것은 효과적이지 않습니다. 수신되는 JSON 데이터에 접근하려면 수신 페이지에서 file_get_contents("php://input")를 사용하세요.
향상된 코드 조각
다음 코드 조각은 다음을 보여줍니다. 올바른 접근 방식:
$ch = curl_init($url); # Setup request to send json via POST. $payload = json_encode(array("customer" => $data)); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); # Return response instead of printing. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); # Send request. $result = curl_exec($ch); curl_close($ch); # Print response. echo "<pre class="brush:php;toolbar:false">$result";
타사 라이브러리
Shopify API와 인터페이스하려면 타사 라이브러리를 활용하는 것이 좋습니다. 이를 통해 프로세스를 단순화하고 추가 기능을 제공할 수 있습니다.
위 내용은 내 PHP cURL POST 요청이 빈 JSON 배열을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!