1 回答
TA贡献1815条经验 获得超10个赞
您正在使用POST
请求方法,但您发送的是source parameter in URL
. 您的URL$data
中的 是 base64 编码的,这会产生一个非常大的字符串。这就是您收到错误的原因414 Request-URI Too Large
。
解决方案:
您应该使用相同的 POST 方法将参数更改为 JSON 正文。
从您提供的文档中chevereto
可以清楚地看出。
API v1 调用可以使用 POST 或 GET 请求方法完成,但由于 GET 请求受 URL 允许的最大长度限制,您应该更喜欢 POST 请求方法。
因此,使用 POST 方法和包含成对参数的 JSON Body key:value
。这将解决问题。
示例 PHP 代码:
$requestData = [
'key' => 123456789,
'source' => 'base64EncodedStringHere',
'format' => 'json'
];
$jsonData = json_encode($jsonData);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://ip/api/1/upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $jsonData,
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
- 1 回答
- 0 关注
- 223 浏览
添加回答
举报