cURL无法在实时服务器上运行

时间:2016-06-08 11:34:46

标签: php curl

我正在尝试使用IOSPHPcURL中发送推送通知,但curl在我的实时服务器上无效,尽管服务器上启用了curl扩展 下面是我的通知文件卷曲代码!

<?php

error_reporting(E_ALL);
$message = "Test Notifcation";
$regId = $_REQUEST['device_id'];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://examplemyserver.com/api/push.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$data = array(
        'deviceToken' => $regId,
        'title' => "send_notification",                 
        'message' => $message,
        'notification_id' => "test",
        'notification_title' => "test1",
        'notification_description' => "lorem",          
        'sent_date' => strtotime(date("Y-m-d H:i:s"))
);  


curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
var_dump(curl_getinfo($ch));
print_r(curl_error($ch));
$output = curl_exec($ch);       
echo 'Curl error: ' . curl_error($ch);
curl_close($ch);
print_r($output);

?> 

每当我尝试使用上面的代码运行通知文件时,它花了超过30秒并显示以下错误:

array(26) {
  ["url"]=>
  string(50) "http://examplemyserver.com/api/push.php"
  ["content_type"]=>
  NULL
  ["http_code"]=>
  int(0)
  ["header_size"]=>
  int(0)
  ["request_size"]=>
  int(0)
  ["filetime"]=>
  int(0)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0)
  ["namelookup_time"]=>
  float(0)
  ["connect_time"]=>
  float(0)
  ["pretransfer_time"]=>
  float(0)
  ["size_upload"]=>
  float(0)
  ["size_download"]=>
  float(0)
  ["speed_download"]=>
  float(0)
  ["speed_upload"]=>
  float(0)
  ["download_content_length"]=>
  float(-1)
  ["upload_content_length"]=>
  float(-1)
  ["starttransfer_time"]=>
  float(0)
  ["redirect_time"]=>
  float(0)
  ["redirect_url"]=>
  string(0) ""
  ["primary_ip"]=>
  string(0) ""
  ["certinfo"]=>
  array(0) {
  }
  ["primary_port"]=>
  int(0)
  ["local_ip"]=>
  string(0) ""
  ["local_port"]=>
  int(0)
}

卷曲错误:

Failed to connect to examplemyserver.com port 80: Connection refused

您能否告诉我问题是什么以及我在服务器配置中发生了哪些变化?

2 个答案:

答案 0 :(得分:0)

尝试添加此行

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);



var_dump(curl_getinfo($ch));

如果仍然无效,请确保url正确无误。

答案 1 :(得分:0)

您可能在服务器上设置firewall设置,阻止与*:80的连接 - 与外部服务器的所有连接&#39; 80号港口。