> 백엔드 개발 > PHP 튜토리얼 > JSON 데이터를 보낼 때 PHP cURL POST 요청이 빈 배열을 반환하는 이유는 무엇입니까?

JSON 데이터를 보낼 때 PHP cURL POST 요청이 빈 배열을 반환하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-15 14:09:33
원래의
434명이 탐색했습니다.

Why is my PHP cURL POST request returning an empty array when sending JSON data?

PHP cURL을 사용하여 JSON 데이터를 게시하고 읽을 수 있는 형식으로 반환하는 방법

서버에서도 코드가 JSON 데이터를 올바르게 게시하지 않습니다. , 빈 배열을 반환합니다. Shopify API처럼 JSON을 사용해 REST를 구현하려면 이 문제를 해결해야 합니다.

POST 요청 수정

문제를 해결하려면 전체를 인코딩해야 합니다. "고객" 필드뿐만 아니라 JSON의 POST 데이터입니다. 다음과 같이 코드를 수정하세요.

$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
";
로그인 후 복사

POST 데이터 액세스

다른 페이지에서는 서버 때문에 $_POST를 사용하여 POST 데이터를 검색할 수 없습니다. 측면 분석. 대신 POST된 JSON이 포함된 file_get_contents("php://input")를 사용하세요. 읽을 수 있는 형식으로 데이터를 보려면:

echo '<pre class="brush:php;toolbar:false">'.print_r(json_decode(file_get_contents("php://input")),1).'
';
로그인 후 복사

추가 고려 사항

  • 타사 라이브러리를 사용하여 Shopify API 대신 타사 라이브러리를 사용하는 것이 좋습니다. 직접 인터페이스합니다.
  • 서버가 올바른 Content-Type으로 JSON 요청을 수신하도록 구성되어 있는지 확인하세요. 헤더.

위 내용은 JSON 데이터를 보낼 때 PHP cURL POST 요청이 빈 배열을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿