为什么此CURL在PHP中起作用但在shell中不起作用

1252748

我正在尝试访问API。我可以从PHP做到这一点

<?php

$url = 'http://apiurl/path';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('API-KEY: myKey'));
//curl_setopt($ch, CURLOPT_POST, 1);

$output = curl_exec($ch);
$curlInfo = curl_getinfo($ch);
curl_close($ch);
echo $output; /*success!*/

但是,从命令行执行此操作会触发403错误。

curl -i -v -H "API-KEY: myKey" http://apiurl/path
/*failure!*/

PHP有何不同之处?还是我的命令行代码中出现语法错误?

马特·吉布森(Matt Gibson)

我可以看到的唯一明显区别是,默认情况下,命令行PHP添加了User-Agent标头。您使用的API服务器可能会拒绝来自Curl用户代理的请求吗?尝试通过添加参数从命令行将其删除-H "User-Agent:"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么此ftp get命令在我的shell脚本中起作用但在cron中失败

在PHP中为什么不起作用

为什么我的 ftp 连接在 php laravel 中不起作用,但在 FileZilla 中起作用?

为什么.save在Mongoose中起作用但在带有upsert的.update中不起作用

为什么 CSE 公式在 NameManager 中不起作用,但在单元格中起作用?

为什么quasure在group_by()中起作用但在filter()中不起作用?

为什么请求在 laravel 中不起作用,但在 pgAdmin 中起作用?

静态constexpr函数在模板struct中起作用,但在struct中不起作用。为什么?

为什么findOne()在withTracker()部分中不起作用,但在render()方法中却起作用?

为什么此.slideToggle函数在jQuery中不起作用?

为什么此常量声明在Java中不起作用?

为什么解密功能中的此循环不起作用?

为什么此jQuery在Codeigniter中不起作用?

为什么此if语句在Django中不起作用?

为什么此C代码在JavaScript中不起作用?

为什么此BindingAdapter在Kotlin中不起作用?

为什么此Regex在R中不起作用

为什么此查询在PHPMyAdmin中不起作用

为什么此页面中的“轮播”不起作用?

为什么我的cURL请求在XAMPP中不起作用?

为什么 curl 命令在 golang 中不起作用

为什么此功能在runghc中起作用而在ghci中不起作用?

为什么Jobs命令在Shell脚本中不起作用?

为什么进程替换在Shell脚本中不起作用?

为什么“ cd”在shell脚本中不起作用?

为什么陷阱信号在Shell函数中不起作用?

为什么此kill在此Bash脚本中不起作用,而仅在脚本之外起作用?

为什么我的命令在shell脚本中不起作用,而在bash中起作用?

为什么“读取时”在终端中起作用,而在Shell脚本中却不起作用?