我在将curl命令转换为Laravel Http Facade命令时陷入困境。
curl -i --upload-file ~/Desktop/Myimage.jpg -H 'Authorization: Bearer Redacted' "https://www.linkedin.com/dms-uploads/C5622AQHdBDflPp0pEg/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&sync=1&v=beta&ut=1lrKqjt4fYuqw1"
我尝试了如下的 Laravel 命令,但服务器抱怨
400 Bad Request
Http::attach("file_display_name", file_get_contents("path_to_file"), "file_name_with_extension")
->withHeaders([
"Authorization" => "Bearer Redacted"
])
->put("https://www.linkedin.com/dms-uploads/C5622AQHdBDflPp0pEg/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&sync=1&v=beta&ut=1lrKqjt4fYuqw1");
感谢您帮助我找出我做错的事情。
PS: Curl 命令成功运行。
编辑:按照 John Lobo 的建议尝试了 Postman。
我已将请求方法设置为 PUT 并使用 form-data 来设置文件。我不确定这是否是正确的方法,因为我也通过这种方法获得了
400 Bad Request
。响应正文中没有其他内容。
经过更多研究(感谢 ChatGPT),我发现了我的错误。
我没有正确设置文件的密钥。文件的密钥必须准确为
file
。然后就可以了。
更新了 Laravel 代码:
Http::attach("file", file_get_contents("path_to_file"), "file_name_with_extension")
->withHeaders([
"Authorization" => "Bearer Redacted"
])
->put("https://www.linkedin.com/dms-uploads/C5622AQHdBDflPp0pEg/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&sync=1&v=beta&ut=1lrKqjt4fYuqw1");