使用RestSharp上传没有Multipart/Form-Data的文件

Hip*_*nor 2 restsharp

下面是一个POST请求完成标准HttpWebRequest和HttpWebResponse.基本上它发布了带有一些参数的binanry文件.

如何使用RestSharp做同样的事情?

资源:

https://github.com/attdevsupport/ATT_APIPlatform_SampleApps/tree/master/RESTFul/SpeechCustom,ATT_APIPlatform_SampleApps/RESTFul/Speech/Csharp/app1 /]

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(string.Empty+parEndPoint );

httpRequest.Headers.Add("Authorization", "Bearer " + parAccessToken);
httpRequest.Headers.Add("X-SpeechContext", parXspeechContext);
if (!string.IsNullOrEmpty(parXArgs))
{
    httpRequest.Headers.Add("X-Arg", parXArgs);
}
string contentType = this.MapContentTypeFromExtension(Path.GetExtension(parSpeechFilePath));
httpRequest.ContentLength = binaryData.Length;
httpRequest.ContentType = contentType;
httpRequest.Accept = "application/json";
httpRequest.Method = "POST";
httpRequest.KeepAlive = true;
httpRequest.SendChunked = parChunked;
postStream = httpRequest.GetRequestStream();
postStream.Write(binaryData, 0, binaryData.Length);
postStream.Close();

HttpWebResponse speechResponse = (HttpWebResponse)httpRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)

Hem*_*hen 8

一个简单的上传示例:

    RestClient restClient = new RestClient("http://stackoverflow.com/");
    RestRequest restRequest = new RestRequest("/images");
    restRequest.RequestFormat = DataFormat.Json;
    restRequest.Method = Method.POST;
    restRequest.AddHeader("Authorization", "Authorization");
    restRequest.AddHeader("Content-Type", "multipart/form-data");
    restRequest.AddFile("content", imageFullPath);
    var response = restClient.Execute(restRequest);
Run Code Online (Sandbox Code Playgroud)

  • 这个答案没有回答问题。它明确询问,如何在没有 multipart/form-data 的情况下完成它。我遇到的问题是,如果使用此类型,用于上传文件的 API 会响应错误“UnsupportedMediaType”。 (2认同)