Curl PHP - 400 错误无法满足请求
Posted
技术标签:
【中文标题】Curl PHP - 400 错误无法满足请求【英文标题】:Curl PHP - 400 Error The request could not be satisfied 【发布时间】:2021-05-12 09:34:57 【问题描述】:我尝试通过 curl 更新日期。我使用 put 语句。我不知道为什么,但每次获得400 错误。
$data = fopen("test.csv", "c");
$ch = curl_init("https://merchants-connector-importercom/key/test.csv");
curl_setopt($ch, CURLOPT_PUT, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_HTTPHEADER,
array( "x-api-key: fffff","Content-Type: application/json"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
var_dump($content);
$decodedJson = json_decode($content, true);
curl_close($ch);
var_dump($decodedJson);
当我尝试这个时,var_dump 会生成这个输出:
string(903) " 400 ERROR 请求不能被满足。我们不能 此时连接到此应用程序或网站的服务器。那里 可能是流量过多或配置错误。稍后再试, 或联系应用程序或网站所有者。如果您将内容提供给 客户通过 CloudFront,您可以找到故障排除步骤和 通过查看 CloudFront 文档来帮助防止此错误。 由 cloudfront (CloudFront) 生成的请求 ID: vvNW1rlJyfMLF0tl8Nu3GMGc5K-deL2Os2hb_RENbOsv-GwtUAureg==“空”
我做错了什么?
【问题讨论】:
域应该是.com域吗? 【参考方案1】:我找到了解决方案。问题是 csv.file 被设置为 curl 请求的普通文件。当你使用 curl 时,你需要设置一个 curlFile
$cfile = new CurlFile($file, 'text/csv');
$data = array('data-binary' => realpath($cfile->getFilename()));
【讨论】:
以上是关于Curl PHP - 400 错误无法满足请求的主要内容,如果未能解决你的问题,请参考以下文章
Gitlab使用Axios或Curl请求发布/放入节点 - 无法写入资源 - 400错误
PHP CURL - 错误的请求发布 - 当 POSTFIELDS 非常大时