program story

PHP에서 cURL을 사용하여 응답을 얻는 방법

inputbox 2021. 1. 9. 09:51
반응형

PHP에서 cURL을 사용하여 응답을 얻는 방법


cURL을 통해 API를 호출하고 응답을받는 함수를 갖고 싶은 독립형 PHP 클래스를 갖고 싶습니다. 누군가 나를 도울 수 있습니까?

감사.


편안한 웹 서비스 URL에서 응답을 얻으려면 아래 코드를 사용하십시오. 나는 소셜 멘션 URL을 사용합니다.

$response = get_web_page("http://socialmention.com/search?q=iphone+apps&f=json&t=microblogs&lang=fr");
$resArr = array();
$resArr = json_decode($response);
echo "<pre>"; print_r($resArr); echo "</pre>";

function get_web_page($url) {
    $options = array(
        CURLOPT_RETURNTRANSFER => true,   // return web page
        CURLOPT_HEADER         => false,  // don't return headers
        CURLOPT_FOLLOWLOCATION => true,   // follow redirects
        CURLOPT_MAXREDIRS      => 10,     // stop after 10 redirects
        CURLOPT_ENCODING       => "",     // handle compressed
        CURLOPT_USERAGENT      => "test", // name of client
        CURLOPT_AUTOREFERER    => true,   // set referrer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,    // time-out on connect
        CURLOPT_TIMEOUT        => 120,    // time-out on response
    ); 

    $ch = curl_init($url);
    curl_setopt_array($ch, $options);

    $content  = curl_exec($ch);

    curl_close($ch);

    return $content;
}

솔루션의 핵심은

CURLOPT_RETURNTRANSFER => true

그때

$response = curl_exec($ch);

CURLOPT_RETURNTRANSFER는 응답을 페이지에 인쇄하는 대신 변수에 저장하도록 PHP에 지시하므로 $ response에 응답이 포함됩니다. 가장 기본적인 작업 코드는 다음과 같습니다 (테스트하지 않은 것 같습니다).

// init curl object        
$ch = curl_init();

// define options
$optArray = array(
    CURLOPT_URL => 'http://www.google.com',
    CURLOPT_RETURNTRANSFER => true
);

// apply those options
curl_setopt_array($ch, $optArray);

// execute request and get response
$result = curl_exec($ch);

다른 사람이이 문제를 발견하면 "응답"에 필요할 수있는 응답 코드 또는 기타 정보를 제공하기 위해 다른 답변을 추가합니다.

http://php.net/manual/en/function.curl-getinfo.php

// init curl object        
$ch = curl_init();

// define options
$optArray = array(
    CURLOPT_URL => 'http://www.google.com',
    CURLOPT_RETURNTRANSFER => true
);

// apply those options
curl_setopt_array($ch, $optArray);

// execute request and get response
$result = curl_exec($ch);

// also get the error and response code
$errors = curl_error($ch);
$response = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

var_dump($errors);
var_dump($response);

산출:

string(0) ""
int(200)

// change www.google.com to www.googlebofus.co
string(42) "Could not resolve host: www.googlebofus.co"
int(0)

ReferenceURL : https://stackoverflow.com/questions/6516902/how-to-get-response-using-curl-in-php

반응형