0

我正在尝试访问 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 。它安装正确并且运行良好。
问题:

但是如何获取上述给定网址的请求?代码是

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()方法?密钥和格式?

4

1 回答 1

2

github 自述文件看起来您需要拆分服务器和请求

服务器 = http://api-product.skimlinks.com/

request = query?q=merchant%3A(Amazon%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);
 }

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

于 2013-08-14T19:59:38.170 回答