【发布时间】:2014-07-22 23:53:59
【问题描述】:
您好,我想使用 HttpClient 将一些数据(包含字符串、int 和 Stream)从 windows phone 8.1 发送(发布/放置)到 web api。最好的方法是什么。
public async void Put(string uri)
{
var httpClient = new System.Net.Http.HttpClient();
MultipartFormDataContent content = new MultipartFormDataContent();
var stringContent = new StringContent("FirstName=MUH&LastName=Test", Encoding.UTF8, "multipart/form-data");
var test = new StreamContent(new MemoryStream());
content.Add(test);
content.Add(stringContent);
var message = await httpClient.PutAsync(url+"/UpdateTest", content);
message.EnsureSuccessStatusCode();
string content1 = await message.Content.ReadAsStringAsync();
}
我的 mvc 应用程序中的 api 方法
[AllowAnonymous]
[Route("~/api/account/UpdateTest")]
[HttpPut]
public async Task<object> UpdateTest()
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
try
{
var requestParts = await Request.Content.ReadAsMultipartAsync();
foreach (var part in requestParts.Contents)
{
//part is always StreamContent
var test = await part.ReadAsStreamAsync();
var test1 = await part.ReadAsStringAsync();
}
}
catch (Exception ex)
{ }
}
在我的 windows phone 项目中,我通过了 2 个 HttpContent,一个是 StreamContent,另一个是 StringContent。但在我的 web api put 方法中,两者都是 StreamContent 我不知道为什么。
和其他问题是我必须在 StingContnet 中解析字符串键值。我的问题是从 windows phone 8.1 发送/接收多部分表单数据到 web api 的最佳方式是什么,
谢谢
【问题讨论】:
标签: asp.net-mvc-4 asp.net-web-api http-post windows-phone-8.1 http-put