CodeIgniter Rest Client

时间:2013-08-14 00:14:40

标签: php codeigniter rest

我正在尝试访问json产品响应并希望在页面上呈现它。 当我点击网址

http://api-product.skimlinks.com/query?q=merchant%3A(Amazon%20OR%20Newegg)&key=hide&format=json

它返回具有以下结构的响应。

-ProductsAPI{
   status: 200,
   products: [
        - {
           merchant: "Newegg",
           id:"111",
    ......
    ......

要在codeigniter上运行它,在'Spark'的帮助下安装rest_client。它安装正确,运行正常 的问题:

但是如何获得上面给出的URL的请求?代码是

function index() {
    $this->load->spark('restclient/2.1.0');
    $this->rest->initialize(array('server' => 'http://api-product.skimlinks.com/query?q=merchant%3A(Amazon%20OR%20Newegg)&key=hide&format=json'));
    $this->rest->option(CURLOPT_SSL_VERIFYPEER, FALSE);
    $data['products'] = $this->rest->get();
    $this->load->view('index',$data);
}

不确定放入$this->rest->get()方法的内容是什么?密钥和格式?

1 个答案:

答案 0 :(得分:2)

github自述文件似乎需要拆分服务器和请求

server = http://api-product.skimlinks.com/

request = query?q =商家%3A(亚马逊%20OR%20Newegg)& key = hide& format = json

所以你的代码应该更像:

function index() {
     $this->load->spark('restclient/2.1.0');
     $this->rest->initialize(array('server' => 'http://api-product.skimlinks.com/'));
     $this->rest->option(CURLOPT_SSL_VERIFYPEER, FALSE);
     $data['products'] = $this->rest->get('query?q=merchant%3A(Amazon%20OR%20Newegg)&key=hide&format=json');
     $this->load->view('index',$data);
 }

但我不确定网址格式是否有效(例如网址编码的GET参数),但它可能!如果请求字符串不起作用,请尝试取消它。此外,根据API,请求的“查询”部分可能被视为服务器的一部分。