C# 如何通过post web api从.net发送文件

C# 如何通过post web api从.net发送文件,c#,file,post,C#,File,Post,我有一个接收文件vía post的方法,我想从请求中获取此文件并将其发送到REST请求(也称为post) 这就是我得到的: public async Task<HttpResponseMessage> UploadFisle(string exp, string req) { var user = GetAuthenticatedUser(); if (!Request.Content.IsMimeMultipartContent())

我有一个接收文件vía post的方法,我想从请求中获取此文件并将其发送到REST请求(也称为post)

这就是我得到的:

 public async Task<HttpResponseMessage> UploadFisle(string exp, string req)
    {
        var user = GetAuthenticatedUser();
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }
        var provider = new MultipartMemoryStreamProvider();
        await Request.Content.ReadAsMultipartAsync(provider);
        var url = ConfigurationManager.AppSettings["RestReclam"] + "/PendingFiles/" + user.Dni + "/" + exp + "/" + req + "/token";
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("multipart/form-data"));
        var resp = client.PostAsync(url, provider.Contents[0]).Result;
        return resp;
    }
公共异步任务上传文件(字符串exp,字符串req)
{
var user=GetAuthenticatedUser();
如果(!Request.Content.IsMimeMultipartContent())
{
抛出新的HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var provider=新的MultipartMemoryStreamProvider();
wait Request.Content.ReadAsMultipartAsync(提供程序);
var url=ConfigurationManager.AppSettings[“RestReclam”]+“/PendingFiles/”+user.Dni+“/”+exp+“/”+req+“/token”;
HttpClient=新的HttpClient();
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“多部分/表单数据”);
var resp=client.PostAsync(url,provider.Contents[0]).Result;
返回响应;
}

发生了什么?您有错误吗?是的,我收到一个415错误,显然媒体类型错误,但我无法更改它,也不知道这是否是发送文件的正确方式。HttpClient不是网络库方法。它看起来像是一个继承HttpRequest的自定义类。HttpClient代码中有一个错误,您没有发布。我会首先使用像wireshark或fiddler这样的嗅探器来找到问题的根本原因并修复客户端。网络库错误消息不太好,您将通过嗅探器获取数据。