C# RestSharp上传图片到Laravel API。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# RestSharp上传图片到Laravel API。相关的知识,希望对你有一定的参考价值。
我有一个Laravel API (php), 我想从我的Xamarin.Forms安卓应用上传一个图片. 我有下面这段代码:
public void UploadImage(string filePath) {
var httpClient = Globals.g_HttpClient;
var request = new RestRequest("upload_attachments");
request.Method = Method.PUT;
request.AddHeader("KEY", Globals.APIKey);
request.AddFile("File", filePath);
request.AddHeader("Content-Type", "multipart/form-data");
var response = httpClient.Put(request);
var contentResponse = Convert.ToString(response.Content);
Console.WriteLine(contentResponse);
}
我知道参数为 request.AddFile()
是 name
和 path-to-actual-file
分别,但似乎没有发送附件。有0个文件附加到我的请求,我查看实际的请求,通过使用 dd($request)
在Laravel中. 这是对 dd
:
IlluminateHttpRequest {#50
...
+request: SymfonyComponentHttpFoundationParameterBag {#51
#parameters: []
}
...
+files: SymfonyComponentHttpFoundationFileBag {#55
#parameters: []
}
+cookies: SymfonyComponentHttpFoundationParameterBag {#53
#parameters: []
}
+headers: SymfonyComponentHttpFoundationHeaderBag {#56
#headers: array:7 [
"key" => array:1 [
0 => "KcUup1OR8zRwI99BNRtapQJF8xPMsHj1"
]
"accept" => array:1 [
0 => "application/json, text/json, text/x-json, text/javascript, application/xml, text/xml"
]
"user-agent" => array:1 [
0 => "RestSharp/106.11.4.0"
]
"content-type" => array:1 [
0 => "multipart/form-data; boundary=-----------------------------28947758029299"
]
"content-length" => array:1 [
0 => "20426"
]
"host" => array:1 [
0 => "loan.phcci.coop"
]
"accept-encoding" => array:1 [
0 => "gzip, deflate"
]
]
#cacheControl: []
}
...
}
如你所见 +files
返回一个空数组。如果请求中包含了任何文件, 那么文件就应该在那里.
答案
这个问题的答案实际上是因为我使用了 PUT
方法,而我应该使用 POST
. 我通常使用 PUT
来创建资源,但当有文件附加时,它就不工作了。
以上是关于C# RestSharp上传图片到Laravel API。的主要内容,如果未能解决你的问题,请参考以下文章
通过 RestSharp C# 将 JSON 数组发布到 PHP API