私は cURL を使用していくつかの API 呼び出しを行っていますが、今日まですべてが正常に機能していました。変更された唯一のことは、API が返す db にいくつかのコンテンツを追加したことです。興味深いことに、http_status は 200 ですが、応答は空です。さらに奇妙なのは、他のいくつかの呼び出しが機能することです。そのため、応答のサイズに何らかの形で関連していると思います。
Postman などの Web サービスから同じ要求を実行すると、API が実際にデータを返すことがわかります。cURL が空の配列を返すのはサーバー上だけです。
次のような cURL リクエストを作成します。
$curl = curl_init(API_URL);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
curl_setopt($curl,CURLOPT_TIMEOUT,10);
空の応答のcurl_getinfo
は、次のようなものを返します。
Array
(
[url] => api_url_to_which_im_sending
[content_type] => application/json;charset=utf-8
[http_code] => 200
[header_size] => 157
[request_size] => 219
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.656782
[namelookup_time] => 3.9E-5
[connect_time] => 0.121461
[pretransfer_time] => 0.121504
[size_upload] => 83
[size_download] => 17355
[speed_download] => 26424
[speed_upload] => 126
[download_content_length] => -1
[upload_content_length] => 83
[starttransfer_time] => 0.292595
[redirect_time] => 0
[certinfo] => Array
(
)
[primary_ip] => someip
[primary_port] => 80
[local_ip] => someotherip
[local_port] => someport
[redirect_url] =>
)
実際にデータを返す API 呼び出しとの唯一の顕著な違いは次のとおりです。
[size_download] => 17355
[speed_download] => 26424
はるかに小さい行 (300 - 800)。
だから私の質問は、何らかの形でサイズに関連していると推測しているので、これはどのサーバー設定が原因で、どのように許可された応答サイズを増やすことができますか?