2011-06-13 8 views
4

전 완전히 REST 웹 서비스에 익숙합니다. 필자는 PHP를 사용하여 REST 웹 서비스에 정보를 게시하고 응답을 사용하여 사용자에게 제품을 제공해야합니다 (응답은 제품 코드 임). 내 작업 : 1) HTTP 메서드는 게시물 입니다. 2) 요청 본문은 XML입니다. 3) 헤더에 API 키가 있어야합니다. some-co-APIkey : 4325hlkjh 4) 응답은 xml이므로 구문 분석해야합니다. 나의 주요 질문은 키가 포함되도록 헤더를 설정하는 방법, 본문을 설정하는 방법 및 응답을 얻는 방법입니다. 나는 어디서부터 시작해야할지 확신 할 수 없다. 나는 아주 간단하다고 확신하지만, 결코 그것을 본 적이 없기 때문에 이것을 어떻게 접근 할 지 확신 할 수 없다. 누군가 내가 위대한 예를 보여줄 수 있다면. 모든 도움에 미리 감사드립니다.REST 웹 서비스에 PHP 게시

나는 이렇게 생각하고있다.

$url = 'webservice.somesite.com'; 

    $xml = '<?xml version="1.0" encoding="UTF-8"?> 
     <codes sku="5555-55" />'; 
    $apiKey = '12345'; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 

    ## For xml, change the content-type. 
    curl_setopt ($ch, CURLOPT_HTTPHEADER, $apiKey); 

    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ask for results to be returned 
    if(CurlHelper::checkHttpsURL($url)) { 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    } 

    // Send to remote and return data to caller. 
    $result = curl_exec($ch); 
    curl_close($ch); 

맞나요?

+0

좋은 시작입니다 .. 코드를 실행하고 오류가 있는지 알려주십시오. – babonk

답변

7

이 경우 cURL을 사용해야합니다. 설명서를 읽어야하지만, 여기에 제가 작성한 기능이 있습니다. 귀하의 목적에 맞게 수정하십시오.

function curl_request($url, $postdata = false) //single custom cURL request. 
{ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_HEADER, TRUE); 
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
    curl_setopt($ch, CURLOPT_VERBOSE, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  

    curl_setopt($ch, CURLOPT_URL, $url); 

    if ($postdata) 
    { 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); 
    } 

    $response = curl_exec($ch); 

    curl_close($ch); 

    return $response; 
} 

PHP의 경우, PHP는 구문 분석을위한 훌륭한 기능을 가지고 있습니다. simplexml을 확인하십시오.

+0

여러분은 curl로 요청을 보내고 xml 응답을 읽을 수 있습니다. – babonk

0

HTTP request을 수행하는 방법을 PHP 매뉴얼에서 확인하고 응답을 읽어보십시오. HTTP context options and parameters은 달성하고자하는 목적에 유용합니다.

HTTP POST 요청을 만드는 방법에 대한 일반적인 자습서가 필요하면 여기에서 더 긴 메시지를 찾으십시오. HTTP POST from PHP, without cURL. 일반 REST 헬퍼도 있습니다. 따라서 정확히 찾고있는 것일 수 있습니다.

관련 문제