2011-08-05 51 views
0

我看到一个具有cURL操作的示例服务器端API,我认为cURL应该是客户端请求。以下类API是服务器端代码,但是从具有一堆uCurls操作的newtwork类继承而来。cURL操作可以在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查询的服务器(有几个)。您的服务器想要对其访问者进行地理定位。它可以使用curl这个服务器端API发布到地理位置数据库服务器并查找结果。 – arunkumar

+0

是的,肯定你可以做服务器端cURL调用,只需要正确的扩展。 – yokoloko

回答

1

如果您安装了正确的PHP扩展,cURL也可以用于服务器。

+0

http://www.gen-x-design.com/archives/create-a-rest-api-with-php/这个怎么样? $ return_obj = new RestRequest();在prcoessrequest里面这个RestRequest是一个客户端请求对象,在它的代码中它有一堆cURL。但是,在这种情况下,API服务器不会调用另一台服务器。 – lilzz

相关问题