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()namepath-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

如何使用 Laravel 4 将图片上传到谷歌?

C# - OLAP TM1 的 JSON 正文参数 - 通过 RestSharp 进行补丁调用

上传图片到 Laravel-Lumen API

laravel上传到七牛图片插件

C# 怎么实现上传图片到数据库 代码