ixudra / curl发布不同内容类型的multipart / form-data

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (316)

我试图使用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();

对于curl,,就像这样。不知何故,错误是“ 无法验证OAuth令牌 ”,并且标头内容类型不是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"

大家有没有任何的想法?谢谢。

提问于
用户回答回答于

你的代码,我没有看到任何错误。您不需要containsFile()在那里包含该方法,但这确实是一个不会以任何方式影响您的结果的细节。

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

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动