我是Windows-phone以及mvc4 Web-API的新手。我正在尝试从windows-phone发送详细信息,并希望将这些详细信息作为查询字符串在mvc4 web-API中获取。我现在有数据列表,但我不知道如何发送它并在Web-API需要建议或示例链接中接收它。
答案 0 :(得分:0)
您可以先查看此Contact Manager Web API sample。
我正在尝试从windows-phone发送详细信息,并希望将这些详细信息作为查询字符串在mvc4 web-API中获取
解决方案#1:
通过从查询字符串传递字符串列表,您需要将操作参数标记为[FromUri] ...
public class ValuesController : ApiController
{
// POST api/values
public void Post([FromUri] List<string> arrOfString)
{
}
}
...并且查询字符串需要采用arrOfString [] = item1&amp; arrayOfString [] = item2&amp; ...&amp; arrayOfString [] = itemN的形式。以下是Windows Phone的外观示例:
WebClient client = new WebClient();
client.UploadStringCompleted += new UploadStringCompletedEventHandler(...);
client.UploadStringAsync(new Uri("http://localhost/api/values?arrOfString[]=a&arrayOfString[]=b&arrayOfString[]=c"), string.Empty);
解决方案#2:
或者,您可以没有在查询字符串中传递数据的硬性要求,在请求正文中传递字符串列表更简单:
Web API服务器:
public class ValuesController : ApiController
{
// POST api/values
public void Post(List<string> arrOfString)
{
}
}
Windows Phone客户端:
WebClient client = new WebClient();
client.Headers["Content-Type"] = "application/json";
var data = JsonConvert.SerializeObject(new List<string>() { "a", "b", "c" });
client.UploadStringCompleted += new UploadStringCompletedEventHandler(...);
client.UploadStringAsync(new Uri("http://localhost/api/values"), "POST", data);