0

Windows Phone と mvc4 Web-API は初めてです。windows-phone から詳細を送信しようとしていますが、それらの詳細を mvc4 Web-API でクエリ文字列として取得したいと考えています。データのリストを取得しましたが、Web-API で送信および受信する方法がわかりません。提案またはサンプル リンクが必要です。

4

1 に答える 1

0

このContactManagerWebAPIサンプルを調べることから始めることができます。

windows-phoneから詳細を送信しようとしていますが、これらの詳細をmvc4web-APIでクエリ文字列として取得したいと考えています。

解決策#1:
クエリ文字列から文字列のリストを渡すことにより、アクションパラメータを[FromUri]としてマークする必要があります...

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

...そしてクエリ文字列はarrOfString[]= item1&arrayOfString [] = item2&...&arrayOfString []=itemNの形式である必要があります。WindowsPhoneの例を次に示します。

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