어떻게 PHP 를 사용 하여 API 인 터 페 이 스 를 호출 합 니까? (어떻게 POST JSON 형식의 데 이 터 를 Restful 서비스 에 제공 합 니까?)

3269 단어 기술 류
curl 로 다음 명령 을 실행 할 수 있 습 니 다:
curl -l -H “Content-type: application/json” -X POST -d ‘{“phone”:”13521389587”,”password”:”test”}’ http://domain/apis/users.json
jQuery 로:
$.ajax({
  url:url,
  type:"POST",
  data:data,
  contentType:"application/json; charset=utf-8",
  dataType:"json",
  success: function(){
    ...
  }
})

PHP curl 로 구현:
$data = array("name" => "Hagrid", "age" => "36");                                                                      
$data_string = json_encode($data);       
$ch = curl_init('http://api.local/rest/users');        
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                            
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',  
    'Content-Length: ' . strlen($data_string))           
);                                                                                                                     
$result = curl_exec($ch);  

인터넷 에서 API 를 요청 하 는 공공 방법 을 찾 았 습 니 다.
function CallAPI($method, $url, $data = false)
{
    $curl = curl_init();

    switch ($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);

            if ($data)
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            break;
        case "PUT":
            curl_setopt($curl, CURLOPT_PUT, 1);
            break;
        default:
            if ($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
    }

    // Optional Authentication:
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array( /*     */               
        'Content-Type: application/json',  
        'Content-Length: ' . strlen($data))           
    );

    $result = curl_exec($curl);
    AddMessage2Log(print_r($result,true));
    curl_close($curl);
    return $result;
}   

[이것 은 curl setopt 에 대한 설명 입 니 다.http://www.runoob.com/php/func-curl_setopt.html]

좋은 웹페이지 즐겨찾기