php curl和浏览器访问脚本的方式究竟有什么不同?
php curl和浏览器访问脚本的方式究竟有什么不同?
现在向一个api发起的请求用浏览器访问脚本的方式可以正确返回值,而用php-curl发送post的方式就返回错误值说content-length的值没有制定。这两者有什么不同?nginx代理过程中做了什么?
$topic = 'topic';
$projectId = 'projectid';
$title = 'hahaha';
$content = 'lol';
$payload = array(
'message' => array(
'topic' => $topic,
'notification' => array(
'title' => $title,
'body' => $content,
)
)
);
$json = json_encode(trim($payload));
$headers = array(
'Authorization:Bearer '.$this->getFcmApiAccessToken(),
'Content-Type: application/json; UTF-8',
'Content-Length:'.strlen($json),//'Content-length:0'
);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"https://fcm.googleapis.com/v1/projects/{$projectId}/messages:send");
curl_setopt($ch,CURLOPT_POST, true );
curl_setopt($ch,CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
var_dump($result);exit;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
content-length 错误就设置请求头就行了啊
一個是瀏覽器會幫你處理header請求頭,一個需要你自己拼裝,當然如果有cookie之類的,curl你還要自己設置
php 的 curl 一般也是不需要设置 content-length 的。
建议最好把 curl 相关的代码贴出来。