php - PHP curl 行为不一致
问题描述
我正在为使用 PHP 的移动应用程序开发后端系统。该移动应用程序是使用 Expo 开发的。我想要做的是通过博览会服务器向设备发送推送通知。
我创建了一个辅助函数来执行一个 POST 请求来展示这里描述的推送通知端点。
/**
* Perform POST request with curl.
*
* @param string $url
* @param mixed $params
* @param array $headers
*
* @return array
*/
function curl_post($url, $params = null, $headers = [])
{
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTPHEADER => $headers,
]);
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if (!empty($error)) {
throw new \Error($error);
}
return json_decode($response, true);
}
起初,它就像一个魅力,但有时后来,它不起作用,因为 Expo 服务器无法识别我发送的参数。
奇怪的是,当我使用 guzzle 执行请求(使用相同的输入)时,它总是有效。使用 curl 时我是否缺少一些配置?或者这是 curl 的已知错误?
我正在使用带有 PHP 7.3.11 的 Windows 10 和 XAMPP 进行开发,我也在使用 Laravel 6 框架。
解决方案
推荐阅读
- python-3.x - python打字:如何继承自我类型(使用静态类型)
- javascript - nodejs expressjs ERR_TOO_MANY_REDIRECTS
- sql - SQL:列出行之间的差异(显示在列中)
- google-sheets - 如何理解求和表达式 sum(A14+A15:A19)
- c++ - 构造函数中的默认参数会导致编译时错误
- apache-nifi - NIFI nipyapi.nifi.rest.ApiException:(401)原因:未经授权。诺克斯网关
- python - 熊猫使用 tldextract 加入单元格中的最后 2 个逗号分隔项目
- javascript - 浏览器找不到导入的 javascript 包,生成错误 404
- javascript - 按时间排序json表
- grafana - 是否可以使用 grafana 将 SQL DB(postgres / mysql)的查询结果写入 influxDB ?