[英]PHP :Making a curl request
我在这里有问题
<?php
include('smsconfig.php');
include("SMTPconfig.php");
include("dbconnect.php");
define("SITE_URL", "http://gf2fyu.blah.com");
$GLOBAL_REST_URL = "gf2fyu.domain.com/organization/";
$headers = array(
'X-MYDOMAIN-Secret:VuFlRQv40SUp0y1AXflMD0hWw8ZiiTu08f9ZXc0AYFc=',
'Content-Type: application/json; charset=UTF-8',
'Accept: application/json; charset=UTF-8',
);
//$json = array2json($ages);
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,$GLOBAL_REST_URL);
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
// curl_setopt($curl_handle, CURLOPT_POSTFIELDS,$json);
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
$getit = json_decode($buffer, true);
$smskey = substr(number_format(time() * rand(),0,'',''),0,5);
print_r($getit);
?>
如果我在本地服务器和Mozila REST上运行上述代码,对我来说工作正常
客户端,但是每当我尝试将此代码发布到生产版本时
此代码不会影响其余服务器。
请告诉我这里是什么问题?
我在MOzila中使用相同的标头,但工作正常
我正在运行Nginx
一切都在注释中,但让我们按顺序放下。
1)Curl可能未安装在服务器上的PHP中。 要找出原因,请打开错误报告(或检查错误日志)。 或者,一种更可靠的方法是检查功能。 将以下内容添加到您的代码中(在包含之后)
if (!function_exists('curl_init')) {
die('Curl not installed');
}
解决方案:您可以尝试使用file_get_contents,但正如注释中所述,通常不建议这样做,因为它也被禁用。 如果需要传递标题,则可以在“上下文”(调用中的第三个参数-查看手册)中进行。 更好的选择是安装curl(或获得支持以安装它)。
2)可能启用了防火墙。 您可以通过检查curl_getinfo ()并将结果转储到屏幕(以进行测试)来建立。 这将告诉您它是否被阻止或通过。 有关更多信息,请参见手册(上面链接)。
3)您的代码中可能存在较高的错误,导致出现问题。 检查错误日志,或使用以下命令打开error_reporting
error_reporting(E_ALL);
ini_set('display_errors', 'on');
不过,请记住在最终投入生产时删除这些行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.