如何在Codeigniter中使用CURL在两个服务器之间发送数据


How to send data between two server using CURL in Codeigniter?

我有两个服务器:

1.许可

2.资源调配

现在,客户端(android/ios设备)向许可证服务器发送请求。因此,我们从get中获得了一些参数,我使用CURL将其转发到资源调配服务器,如下所示:

  $skey = $this->input->get('site_id');
  $uid  = $this->input->get('user_id'); 
  $url =  "http://127.0.0.1/example.com?site_key=".$skey."&uid=".$uid;
  $wget_cmd = "wget --no-check-certificate '"".$url."'" >/dev/null 2>/dev/null ";
  //echo($wget_cmd);
  //exec($wget_cmd);
  // create a new cURL resource
  $ch = curl_init();
  //curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
  curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
  curl_setopt($ch, CURLOPT_TIMEOUT, 300);
  // set URL and other appropriate options
  curl_setopt($ch, CURLOPT_URL, $url);
  //curl_setopt($ch, CURLOPT_HEADER, 0);
  // grab URL and pass it to the browser
  curl_exec($ch);

  echo curl_error($ch);

  // close cURL resource, and free up system resources
  curl_close($ch);

现在,配置服务器有一个名为provisioning.php的文件。在那里,我根据许可证服务器发出的请求执行一些DB操作,并生成一个URL,我想将其发送回许可证服务器。

在配置时,我会根据数据库操作生成这样的URL:

$uri = site_url('/uploads/'.$user_ini['custom_ini_filename'].'.ini');
$ini_url =  json_encode($uri,JSON_UNESCAPED_SLASHES);

在这里,我想将$ini_url返回到许可证服务器。

  1. 我该怎么做
  2. 如何在许可证服务器上访问此$ini_url

将CURLOPT_RETURNTTRANSFER设置为1,然后简单地将curl_exec($ch)的响应分配给一个变量:

许可证服务器

  $skey = $this->input->get('site_id');
  $uid  = $this->input->get('user_id'); 
  $url =  "http://127.0.0.1/example.com?site_key=".$skey."&uid=".$uid;
  $wget_cmd = "wget --no-check-certificate '"".$url."'" >/dev/null 2>/dev/null ";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
  curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
  curl_setopt($ch, CURLOPT_TIMEOUT, 300);
  curl_setopt($ch, CURLOPT_URL, $url);
  // The blow variable stores the response from provision server
  $response_from_provision_server = curl_exec($ch);
  echo curl_error($ch);
  curl_close($ch);

您还需要从配置服务器回显$ini_url的内容,这是响应curl_exec()调用而发送回License server的输出。

资源调配服务器

$uri = site_url('/uploads/'.$user_ini['custom_ini_filename'].'.ini');
$ini_url =  json_encode($uri,JSON_UNESCAPED_SLASHES);
// echo the $ini_url variable
echo $ini_url;