1 回答

TA貢獻1815條經驗 獲得超10個贊
您正在使用POST
請求方法,但您發(fā)送的是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 關注
- 308 瀏覽
添加回答
舉報