【发布时间】:2012-04-25 09:38:59
【问题描述】:
我遵循了 HttpClient 示例,但不知道如何发布带有 2 个参数的方法。
以下是我尝试过的,但它返回错误的网关错误:
private async void Scenario3Start_Click(object sender, RoutedEventArgs e)
{
if (!TryUpdateBaseAddress())
{
return;
}
Scenario3Reset();
Scenario3OutputText.Text += "In progress";
string resourceAddress = "http://music.api.com/api/search_tracks";
try
{
MultipartFormDataContent form = new MultipartFormDataContent();
// form.Add(new StringContent(Scenario3PostText.Text), "data");
form.Add(new StringContent("Beautiful"), "track");
form.Add(new StringContent("Enimem"), "artist");
HttpResponseMessage response = await httpClient.PostAsync(resourceAddress, form);
}
catch (HttpRequestException hre)
{
Scenario3OutputText.Text = hre.ToString();
}
catch (Exception ex)
{
// For debugging
Scenario3OutputText.Text = ex.ToString();
}
}
我浏览了整个互联网,但找不到任何显示如何执行 http post 方法的工作示例或文档。任何材料或样品都会对我有很大帮助。
【问题讨论】:
-
你确定服务器期待
multipart/form-data吗?您是否尝试过ByteArrayContent包含类似artist=Enimem&track=Beautiful的内容? -
我认为 music.api.com 不是真实的,所以我无法验证它是否需要表单数据。但总的来说,rest apis 不期望表单数据。表单数据主要用于用户提交的表单和文件上传。
-
嗯,也许我在 multipart/form 上错了,因为那是我找到的样本。如果是 byteArray,我该如何传入参数?谢谢大家
标签: http-post windows-8 microsoft-metro