CURL投稿を実行しようとしていますが、いくつかの問題が発生しています。
基本的に、私は郵便番号のリストをAPIに投稿していますが、選択されているものによっては、非常に大きなリストになる可能性があります。いくつかの郵便番号だけを投稿すると、完璧に機能します。郵便番号のより大きなリストをスローすると、サーバーからの応答が空であるというエラーで失敗します。
private function sendApiRequest($action, $request)
{
// Testing
$request['Test'] = $this->apitest;
// Build URL
$postURL = "{$this->apiurl}?Key={$this->apikey}&API_Action={$action}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $postURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($request));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$resp = curl_exec($ch);
if(curl_errno($ch))
{
var_dump(curl_getinfo($ch));
throw new Exception('Curl Error: ' . curl_error($ch));
}
curl_close($ch);
return $resp;
}
curl_getinfo()ダンプは次のとおりです。
array
'url' => string 'https://api.example.com/api.php?Key=xxx&API_Action=insertFilterSet' (length=147)
'content_type' => null
'http_code' => int 0
'header_size' => int 0
'request_size' => int 11736
'filetime' => int -1
'ssl_verify_result' => int 20
'redirect_count' => int 0
'total_time' => float 0.374
'namelookup_time' => float 0
'connect_time' => float 0.093
'pretransfer_time' => float 0.203
'size_upload' => float 11486
'size_download' => float 0
'speed_download' => float 0
'speed_upload' => float 30711
'download_content_length' => float -1
'upload_content_length' => float 11486
'starttransfer_time' => float 0.374
'redirect_time' => float 0
'certinfo' =>
array
empty
'redirect_url' => string '' (length=0)
私が言ったように、それは小さなリクエストには完璧に機能しますが、大きなリクエストではエラーになります。