2

APIが JSON 形式でリクエストを受信し、JSON 形式でレスポンスを送信するWPF 4.0 アプリケーションで Web APIを呼び出したいと考えています。

ここからWPF 4.5でWeb APIを呼び出すソリューションを入手しましたhttp://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-wpf-application

しかし、私はWPF 4.0で同じ種類のソリューションが欲しい

私を助けてください

4

2 に答える 2

2

NuGet パッケージ マネージャーと Http クライアント ライブラリをインストールする必要があります。これは動作するはずです: http://www.codeproject.com/Articles/611176/CallingplusASP-NetplusWebAPIplususingplusHttpClien

于 2013-09-05T09:23:16.687 に答える
0
 public  T CallWebAPi<T>(string userName, string password, Uri url, out bool isSuccessStatusCode)
        {
            T result = default(T);

            using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = url;
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(
                    System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password))));

                HttpResponseMessage response = client.GetAsync(url).Result;
                isSuccessStatusCode = response.IsSuccessStatusCode;
                var JavaScriptSerializer = new JavaScriptSerializer();
                if (isSuccessStatusCode)
                {
                    var dataobj = response.Content.ReadAsStringAsync();
                    result = JavaScriptSerializer.Deserialize<T>(dataobj.Result);
                }
                else if (Convert.ToString(response.StatusCode) != "InternalServerError")
                {
                    result = JavaScriptSerializer.Deserialize<T>("{ \"APIMessage\":\"" + response.ReasonPhrase + "\" }");
                }
                else
                {
                    result = JavaScriptSerializer.Deserialize<T>("{ \"APIMessage\":\"InternalServerError\" }");
                }
            }
            return result;
        }
于 2016-03-24T06:28:38.660 に答える