首页 > 解决方案 > ixudra/curl 发布具有不同内容类型的多部分/表单数据

问题描述

我正在尝试使用指定数据为应用程序 json 的 ixudra/curl 在 laravel 中发布 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"

任何想法?谢谢你的时间。

标签: laravelrestcurlmultipartform-data

解决方案


这仍然是一个问题吗?查看您的代码,我没有看到任何错误。您不需要在其中包含该containsFile()方法,但这确实是一个不会以任何方式影响您的结果的细节。

根据您的描述,我怀疑该文件与错误有关。我建议尝试通过在简单的 GET 请求上使用它来确保身份验证是否正确,只是为了确保。如果可行,您应该更深入地研究表格。


推荐阅读