$multipart = [
[
'name' => 'video_url',
'contents' => 'https://xxx/123.mp4'
],
[
'name'=>'advertiser_id',
'contents'=>xxx,
]
];
$token = 'xxxxx';
$boundary = $multipart->getBoundary();
$url = 'https://api.oceanengine.com/open_api/2/file/video/ad/';
$http->request($url, [
'method' => 'POST',
'version' => '1.1',
'headers' => [
'Connection' => 'keep-alive',
'Content-Type' => "multipart/form-data",
'Access-Token' => $token ,
],
'data' => $multipart,
'success' => function ($response)use($itemId,$videoId,$accountId) {
Log::channel('ocean')->info('檢查同主體-日志id:'.$itemId.'-視頻id:'.$videoId.'-戶id:'.$accountId.'-結(jié)果:'.$response->getBody());
echo '正常結(jié)束:'.$response->getBody().'|id:'.$itemId.PHP_EOL;
},
'error' => function ($exception)use($itemId,$videoId,$accountId) {
Log::channel('ocean')->info('檢查同主體-日志id:'.$itemId.'-視頻id:'.$videoId.'-戶id:'.$accountId.'-結(jié)果:異常退出'.$exception);
echo '異常退出:'.$exception.'|'.$itemId.PHP_EOL;
}]
);
請(qǐng)求巨量的api時(shí),會(huì)一直等待異常超時(shí)退出,用GuzzleHttp\Client 就正常請(qǐng)求。是我請(qǐng)求體有問題嗎
按照文檔 'Content-Type' 應(yīng)該是 "multipart/form-data; boundary=$boundary",你寫成了 "multipart/form-data"
還有巨量請(qǐng)求時(shí)對(duì)方接口負(fù)載高了返回慢超時(shí)也正常吧,不一定是你代碼問題。GuzzleHttp\Client 阻塞調(diào)用并發(fā)和workerman http-client異步并發(fā)不是一個(gè)數(shù)量級(jí)的,GuzzleHttp\Client并發(fā)提不起來所以可能表現(xiàn)正常。