c# REST API文件从客户端代码上传得到400个错误请求



我有一个用。net核心编写的Rest API,它接受一个文件作为Multipart/Form-data的输入。当我从Swagger/Postman运行它时,API工作得非常好。

这是API端点。

[HttpPost("CreateStudy")]
public ActionResult CreateStudy([FromForm] APIRequest request)
{
// rest of the code

这里也是APIRequest对象。它只有一个属性是IFormFile Type。

public class APIRequest
{             
public IFormFile XMLFile { get; set; }
}  

到目前为止,它运行良好。问题是,我正试图编写一个客户端代码,将调用此API并从c#代码传递文件。

但是我总是在客户端代码中得到一个400-Bad的请求。

这是我正在尝试的客户端代码。

public string CallServiceWithFileAsync(string EndPointURL, string FilePath)
{
string ResultStatusCode;            

Uri uri = new Uri(EndPointURL);
var Client = new HttpClient();
Client.DefaultRequestHeaders.Clear();
//Prepare Message
HttpRequestMessage Message = new HttpRequestMessage();
Message.Method = HttpMethod.Post;
Message.Headers.Add("Accept", "application/octet-stream");
Message.RequestUri = new Uri(EndPointURL);               
using (Stream fileStream = File.OpenRead(FilePath))
{
var content = new StreamContent(fileStream);
var response = Client.PostAsync(uri, content);
ResultStatusCode = response.Result.StatusCode.ToString();
}
return ResultStatusCode;
}

我在这里做错了什么?发送文件到REST端点的正确方法是什么?

[FromForm]期望接收application/x-www-url-formencoded的报头。如果不是这样,请检查输出日志,看看请求没有被处理的原因。

最新更新