我正在尝试访问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有何不同之处?还是我的命令行代码中出现语法错误?
我可以看到的唯一明显区别是,默认情况下,命令行PHP添加了User-Agent标头。您使用的API服务器可能会拒绝来自Curl用户代理的请求吗?尝试通过添加参数从命令行将其删除-H "User-Agent:"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句