【问题标题】:How to post from Windows Phone 8 to Asp.Net MVC4 WebApi and get JSON back如何从 Windows Phone 8 发布到 Asp.Net MVC 4 Web Api 并返回 JSON
【发布时间】:2013-01-12 14:07:21
【问题描述】:

我有以下 Asp.net MVC4 WebApi 方法定义:

public ApiResponse Process(string id, FormDataCollection form)...

我用来从 ExtJS 发布表单数据并返回一个自定义类 ApiResponse {success(bool), msg(string), ds(DataSet) } 可以很好地转换为 JSON。 我可以从 Windows Phone 8 HttpClient 调用它吗? 内置版本似乎不允许我使用 NamedValueCollection。

【问题讨论】:

  • 如果我将后端更改为:“public ApiResponse Process(string id, dynamic form)...”并序列化 Dictionary 就可以了。如果我更改为: public ApiResponse Process(string id, string form)... 找不到。不知道为什么发送序列化字符串会与“动态形式”而不是“字符串形式”连接另外,我不能只将 json 字符串发送到动态形式,它必须从 Dictionary 序列化,否则它将是 NotFound .我不喜欢 Dictionary to json 序列化,因为它会在 json 字符串中产生额外的键/值词。

标签: asp.net-web-api httpclient windows-phone-8


【解决方案1】:

我对您的问题感到困惑如果我没听错,您是在问您是否可以从 WP8 调用 JSON 端点。是的你可以。将生成的 JSON 传送到 http://json2chsarp.com,它将为您生成 JSON.net 类。然后使用 JSON.Net 的 JsonDeserializer 将 JSON 文本反序列化回对象。

【讨论】:

  • 感谢您的回复。Web Essentials 添加了将 JSON 作为类粘贴到 Visual Studio 中的功能。我试图找出最优雅的方式来编写客户端和 WebAPI 以将一组值传递给服务器并返回 JSON,并让它填充一个(如果可能的话)通用的,或者我应该说动态类。对于电话 8,HttpClient 确实允许 NamedValueCollection,所以看起来我必须使用字典 ToJson 字符串,但看起来 webApi 无法接收 FormDataCollection 但必须是字符串或类。虽然 IE 可以看到,但我得到的服务未找到。
猜你喜欢
  • 2013-05-30
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
相关资源
最近更新 更多