使用 httpClient windows Phone 8.1 发布 JSON 对象
Posted
技术标签:
【中文标题】使用 httpClient windows Phone 8.1 发布 JSON 对象【英文标题】:Post JSON Object using httpClient windows Phone 8.1 【发布时间】:2014-11-14 12:40:58 【问题描述】:我正在尝试从 Windows Phone 应用程序将 json 对象发布到 web api 项目,但我仍然收到 404 错误。对于 post 方法,我使用的是该代码:
Mail mailToCheck = new Mail();
try
mailToCheck.MailProfil = TxtBox_mail.Text.ToString();
string json = JsonConvert.SerializeObject(mailToCheck);
var httpClient = new System.Net.Http.HttpClient(new HttpClientHandler());
System.Net.Http.HttpResponseMessage response = await httpClient.PostAsync(new Uri("http://uri/api/Profil/CheckMail"), new StringContent(json));
var responseString = await response.Content.ReadAsStringAsync();
catch (Exception ex)
MessageBox.Show(ex.HResult.ToString());
我的控制器上的 CheckMail 方法:
[HttpPost]
[Route("api/Profil/CheckMail")]
public IHttpActionResult CheckMail([FromBody]Mail MailProfil)
if (MailProfil.MailProfil != null)
try
bool exists = Librairie.Profils.mailExists(MailProfil.MailProfil);
return Ok(exists);
catch(Exception ex)
return InternalServerError(ex);
else
return BadRequest();
Mail 对象在应用程序中与在 web api 项目中完全相同。有人可以告诉我我在这里做错了什么吗?
【问题讨论】:
尝试使用 ..await httpClient.PostAsJsonAsync<Mail>(new Uri("http://uri/api/Profil/CheckMail/"), mailToCheck);
并添加最后一个 /
是来自 HttpClient 的方法还是我需要添加一些使用?昨天试过了,没找到方法,就是PostAsync
你需要添加对 System.Net.Http.Formatting.dll 的引用 :)
【参考方案1】:
在此处查看一些 HttpClient.PostAsync() 示例:https://monkeyweekend.wordpress.com/2014/10/23/how-to-send-text-json-or-files-using-httpclient-postasync/
【讨论】:
感谢您的链接!今晚我会尽快尝试 感谢您的博客,但仍有一些错误。 HttpStringContent 属于 Windows.Net.http 并且 HttpClient 的 PostAsync 方法正在等待 HttpContent 而不是 HttpStringContent... 有两个堆栈。Windows.Web.Http
专为 Windows 运行时设计。以上是关于使用 httpClient windows Phone 8.1 发布 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章
Windows 身份验证不适用于 HttpClient [重复]
使用 PostAsync、HttpClient 和 Json 从 Windows Phone 8.1 调用 REST
HttpClient 和 windows phone 8 便携版
在 Windows 窗体的 HttpClient 类中使用 DelegatingHandler - 内部处理程序尚未设置