我已经手动运行邮递员的网址,并且已经成功连接并打印了结果。
但是当我尝试从方法中调用它时,没有结果。
这是我使用的curl代码:
public function curlHandle($apiPath, $postArray)
{
$CI = & get_instance();
$conf = $CI->config->config;
$curlHandle = curl_init($apiPath);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_USERAGENT,"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36");
curl_setopt($curlHandle, CURLOPT_TIMEOUT , 300);
curl_setopt($curlHandle, CURLOPT_POST, 1);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $postArray);
curl_setopt($curlHandle, CURLOPT_VERBOSE, 1);
$fp = fopen('/var/www/html/logs/curl_log.txt', 'w');
curl_setopt($curlHandle, CURLOPT_STDERR, $fp);
$result = curl_exec($curlHandle);
print_r(curl_error($curlHandle));
if ($result === FALSE) {
die(curl_error($curlHandle));
} else {
$data = json_decode($result, TRUE);
}
curl_close($curlHandle);
return $data;
}
这是curl_log.txt的内容
- 在DNS缓存中找到主机名localhost / codeignitertest
- 正在尝试127.0.0.1 ...
- 设置了TCP_NODELAY
- 已连接到localhost / codeignitertest(127.0.0.1)端口80(#0)
POST / test / process HTTP / 1.1主机:localhost / codeignitertest用户代理:Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 29.0.1547.57 Safari / 537.36接受: / 内容长度:142内容类型: 多部分/表单数据;边界= ------------------------ 78a116d61ad4939d
还请注意curlHandle()来自另一个项目和localhost / codeignitertest,但是两者都在我的localhost中运行
答案 0 :(得分:0)
您已发出此选项:
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
这意味着curl将返回远程服务器的输出,而不是打印输出。
然后将输出捕获到变量中:
$result = curl_exec($curlHandle);
然后您将其编码并返回给呼叫者:
return $data;
此代码不应打印结果。它返回结果。