我正在尝试使用ixudra/curl在laravel中发布multipart/form-data,它指定数据是应用程序json。我所面临的问题是为数据分配类型,同时仍然使头部内容类型为multipart/form-data。
$contents = storage_path('app/curl.txt');
$dataJson = '{"bId":"79", "docId":"23"}';
$response = Curl::to($url)
->withHeaders( array(
'Authorization: Bearer 123432',
'grant_type: jwt-bearer' ) )
->withData( array ('data' => $dataJson ))
->withFile('file', $contents, 'text/*', 'curl.txt')
->containsFile()
->withResponseHeaders()
->returnResponseObject()
->post();
对于卷曲,它是这样的。不知何故,错误是"Failure to Authenticate OAuth Token“,并且报头内容类型不是multipart/form-data
curl -v -H "Authorization:Bearer 123432"
-H "grant_type:jwt-bearer"
-F "file=@\"/jet/app/www/default/test/storage/app/curl.txt\""
-F "data={\"bId\":\"79\", \"docId\":\"23\"};type=application/json"
"https://url/private"
有什么想法吗?耽误您时间,实在对不起。
发布于 2018-12-07 07:53:22
这仍然是一个问题吗?看一下你的代码,我没有发现任何错误。您不需要在其中包含containsFile()
方法,但这确实是一个不会以任何方式影响您的结果的细节。
根据你的描述,我怀疑这个文件与这个错误有任何关系。我建议尝试通过对一个简单的GET请求使用它来确保身份验证是否正确,只是为了确保。如果这样做有效,您应该更深入地研究表单。
https://stackoverflow.com/questions/53292202
复制相似问题