0
我很難通過cURL請求上傳.csv文件到RESTful API。我收到一個成功響應(200 OK),但沒有數據顯示提交:cURL csv文件提交返回OK狀態,但沒有上傳數據
{
"meta": [
],
"code": 200,
"object": "csvfile",
"data": [
],
"time": 1472464675
}
這是被以下要求而作出。我已經添加了評論功能,打破每個CURL_SETOPTS
的:
// create a CURLFile object
$cfile = curl_file_create($fileName,'text/csv', $fileName);
// start curl request
$curl = curl_init();
// assign POST data
$data = array('file' => $cfile);
// specify POST request
curl_setopt($curl, CURLOPT_POST, true);
// basic auth
curl_setopt($curl, CURLOPT_USERPWD, getenv('USERNAME').':'.getenv('PASSWORD'));
// destination URI
curl_setopt($curl, CURLOPT_URL, 'https://api.arestfulapi.com');
// associate curlfile
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// since we're using PHP 5.6 we need to enable CURLOPT_SAFE_UPLOAD
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
// return options
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_STDERR, $out);
$response = curl_exec($curl);
$err = curl_error($curl);
// debugging
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo("CURL RESPONSE: ");
echo $response;
}
curl_close($curl);
我應該提,我不完全理解CURLfile對象$postname
領域的重要性。此外,我並不完全確定我在assign POST data
中做了什麼,如構造文檔(http://php.net/manual/en/class.curlfile.php)中所示。
注意:我在Laravel應用程序中編寫此代碼,並意識到Guzzle客戶端,但選擇以這種方式提出問題,因爲對SO上的典型cURL問題有更多的支持。我相信這個問題與我的cURL文件創建有關,但花了數小時的時間來確定它。
什麼可能導致此問題?