2011-08-05 10 views
0

私はcURL操作を持つサーバー側APIの例を見ていますが、私はcURLがおそらくクライアント側の要求だと考えました。次のクラスAPIはサーバサイドのコードですが、uCurls操作の束を持つnewtworkクラスから継承しています。cURL操作はAPIサーバー側のコード内にできますか?

クラスAPIには、API \ネットワークを拡張

abstract class Network { 
const GET = 'GET'; 
const POST = 'POST'; 

const HTTP_OK  = 200; 
const HTTP_CREATED = 201; 

protected function curl($type, $url, $queryString = array()) 
{ 
    $s = curl_init(); 
    switch (strtoupper($type)) { 
     case self::POST: 
      echo "$url\n"; 
      echo \http_build_query($queryString) . "\n"; 
       die(); 
      curl_setopt($s, CURLOPT_URL, $url); 
      curl_setopt($s, CURLOPT_POST, true); 
      curl_setopt($s, CURLOPT_POSTFIELDS, $queryString); 
      break; 
     case self::GET: 
      curl_setopt($s, CURLOPT_URL, $url . '?' . 

http_build_query($のqueryString)); 休憩。 }

curl_setopt($s, CURLOPT_RETURNTRANSFER, true); 
    $_out = curl_exec($s); 
    $status = curl_getinfo($s, CURLINFO_HTTP_CODE); 
    curl_close($s); 
    switch ($status) { 
     case self::HTTP_OK: 
     case self::HTTP_CREATED: 
      $out = $_out; 
      break; 
     default: 
      throw new \Exception("http error: {$status}", 

$ status); } return $ out; }}

+0

達成したいことは何ですか? – yokoloko

+0

これは、サーバーサイドAPIが他のサーバーとPOST/GET情報を呼び出しているためです。地理的IPルックアップを提供するサーバーがあるとします(いくつかあります)。あなたのサーバーは訪問者の地理情報を望んでいます。このサーバー側APIをカールで使用して、ジオロケーションのdbサーバーに送信し、結果を見つけることができます。 – arunkumar

+0

確かにあなたはサーバー側のcURL呼び出しを行うことができます、ちょうど正しい拡張が必要です。 – yokoloko

答えて

1

正しいphp拡張機能がインストールされている場合、cURLもserversideでも使用できます。

+0

http://www.gen-x-design.com/archives/create-a-rest-api-with-php/これはどうですか? $ return_obj =新しいRestRequest(); inside the the prcoessrequestこのRestRequestは、クライアントリクエストオブジェクトであり、コードには一連のcURLがあります。ただし、この場合、APIサーバーは別のサーバーを呼び出すことはありません。 – lilzz

関連する問題