0

我是 windows-phone 以及 mvc4 Web-API 的新手。我正在尝试从 windows-phone 发送详细信息,并希望在 mvc4 web-API 中获取这些详细信息作为查询字符串。我现在有数据列表,但我不知道如何在 Web-API 中发送和接收它需要建议或示例链接。

4

1 回答 1

0

您可以从查看此Contact Manager Web API 示例开始。

我正在尝试从 windows-phone 发送详细信息,并希望在 mvc4 web-API 中获取这些详细信息作为查询字符串

解决方案 #1:
通过从查询字符串传递字符串列表,您需要将操作参数标记为 [FromUri] ...

public class ValuesController : ApiController
{
    // POST api/values
    public void Post([FromUri] List<string> arrOfString)
    {
    }
}

...并且查询字符串需要采用 arrOfString[]=item1&arrayOfString[]=item2&...&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 电话客户端:

        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);
于 2012-10-05T05:05:12.157 回答