>백엔드 개발 >PHP 튜토리얼 >PHP cURL을 사용하여 JSON 데이터를 올바르게 게시하는 방법은 무엇입니까?

PHP cURL을 사용하여 JSON 데이터를 올바르게 게시하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-23 12:52:16575검색

How to Correctly POST JSON Data Using PHP cURL?

PHP cURL을 사용하여 JSON 데이터를 게시하는 방법은 무엇입니까?

이 질문은 PHP의 cURL 라이브러리를 사용하여 JSON 데이터를 게시하는 문제를 다룹니다. 사용자는 POST 데이터를 특정 URL로 보내는 것을 목표로 하는 코드 조각을 제공합니다. 그러나 코드가 수신 페이지에 게시된 데이터를 검색하지 못하여 빈 배열이 발생합니다.

문제 세부 정보

문제는 JSON 데이터가 게시되는 잘못된 방식에 있습니다. 또한 코드는 print_r($_POST)를 사용하여 게시된 데이터를 검색하는데 이는 권장되는 방법이 아닙니다.

해결책

cURL을 사용하여 JSON 데이터를 올바르게 게시하려면 다음 사항을 확인하는 것이 중요합니다. 데이터가 적절하게 JSON으로 인코딩되었습니다. 제공된 코드 조각에서 "고객" POST 필드의 값만 JSON으로 인코딩됩니다. 대신, 전체 POST 데이터는 JSON으로 인코딩되어야 합니다.

또한 수신 페이지에 게시된 데이터를 검색하려면 file_get_contents("php://input") 함수를 활용할 수 있습니다. JSON 데이터를 게시했습니다.

예제 코드

PHP를 사용하여 JSON 데이터를 올바르게 게시하는 방법의 예는 다음과 같습니다. cURL:

<?php

$url = 'url_to_post';

$data = [
    "first_name" => "First name",
    "last_name" => "last name",
    "email" => "email@example.com",
    "addresses" => [
        "address1" => "some address",
        "city" => "city",
        "country" => "CA",
        "first_name" => "Mother",
        "last_name" => "Lastnameson",
        "phone" => "555-1212",
        "province" => "ON",
        "zip" => "123 ABC",
    ],
];

$data_string = json_encode($data);

$ch = curl_init($url);
# Setup request to send json via POST.
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['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 사양에 따라 JSON을 사용하여 REST를 구현하려는 의도를 표현합니다. Shopify API와의 인터페이스를 위해 특별히 설계된 타사 라이브러리를 사용하면 프로세스를 단순화하고 잠재적인 오류를 줄일 수 있으므로 적극 권장됩니다.

위 내용은 PHP cURL을 사용하여 JSON 데이터를 올바르게 게시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.