我正在使用 cURL 进行一些 API 调用,直到今天一切正常。唯一改变的是我向 API 返回的数据库添加了一些内容。有趣的是我得到了一个 200 的 http_status,但是一个空响应。更奇怪的是,其他一些调用确实有效,所以我的猜测是它与响应的大小有关。
当从像 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)。
所以我的问题是,因为我猜测它与大小有关,什么服务器设置对此负责,以及如何增加允许的响应大小?