.Net - 使用HttpClient发布文件?

时间:2012-08-19 15:44:29

标签: .net asp.net-mvc httpclient asp.net-web-api

我有一个调试方法,我试图用它来将多个文件发布到本地端点来模拟一系列上传。

我有以下代码:

var fi = new FIleInfo(....);
var form = new MultipartFormDataContent();
form.Add(new StreamContent(fi.OpenRead()), "file", fi.Name);
client.PostAsync(@"http://localhost:12372/TemplateManagement/Asset/Create", form);

我想发布到具有以下签名的方法(资产来自自定义绑定器,但这并不重要):

public JsonResult Create(HttpPostedFileBase file, DynamicBuilderAsset asset)

帖子变得正常但文件参数为null。我在这里缺少什么?

1 个答案:

答案 0 :(得分:9)

尝试引用名称和文件名:

form.Add(new StreamContent(fi.OpenRead()), "\"file\"", "\"" + fi.Name + "\"");

如果您要发送标准密钥,情况也是如此:

form.Add(new StringContent("some asset data"), "\"asset\"");