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文件创建有关,但花了数小时的时间来确定它。
什么可能导致此问题?