我正在尝试使用IOS
和PHP
在cURL
中发送推送通知,但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
您能否告诉我问题是什么以及我在服务器配置中发生了哪些变化?
答案 0 :(得分:0)
尝试添加此行
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
前
var_dump(curl_getinfo($ch));
如果仍然无效,请确保url
正确无误。
答案 1 :(得分:0)
您可能在服务器上设置firewall
设置,阻止与*:80
的连接 - 与外部服务器的所有连接&#39; 80号港口。