设为首页 加入收藏

TOP

UWP 律师查询 MVVM(一)
2017-10-11 14:36:25 】 浏览:9444
Tags:UWP 律师 查询 MVVM

APP简介

  律师查询是基于聚合数据的律师查询接口做的,这个接口目前处于停用状态,但是,由于我是之前申请的,所以,还可以用,应该是无法再申请了

效果图

开发

一、HttpHelper

  既然是请求接口的,那就少不了请求方式,这里是比较常用的HttpClient,用起来也比较方便,单独封装一个HttpHelper类,专门用来作为基础的连接用

public static class BaseService
    {
        /// <summary>
        /// 访问服务器时的Cookies
        /// </summary>
        public static CookieContainer CookiesContainer;
        /// <summary>
        /// 向服务器发送GET请求 返回服务器回复的数据
        /// </summary>
        /// <param name="url">地址</param>
        /// <returns></returns>
        public async static Task<string> SendGetRequest(string url)
        {
            try
            {
                HttpClient client = new HttpClient();
                HttpResponseMessage response = await client.GetAsync(new Uri(url));
                response.EnsureSuccessStatusCode();
                return await response.Content.ReadAsStringAsync();
            }
            catch (Exception ex)
            {
                return null;
                throw(ex);
            }
        }
        /// <summary>
        /// 向服务器发送POST请求,返回服务器回复数据
        /// </summary>
        /// <param name="url">地址</param>
        /// <param name="body">报文体</param>
        /// <returns></returns>
        public async static Task<string> SendPostRequest(string url,string body)
        {
            try
            {
                HttpClient client = new HttpClient();
                HttpResponseMessage response = await client.PostAsync(new Uri(url), new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("", body) }));
                response.EnsureSuccessStatusCode();
                return await response.Content.ReadAsStringAsync();
            }
            catch (Exception ex)
            {
                return null;
                throw(ex);
            }
        }
    }
BaseService

  网络请求肯定用异步请求,UWP里比较常用的就是async、await模式,很方便,因为,接口的返回结果用的是Json形式,所以,Newtonsoft.Json来处理序列化和反序列化。

/// <summary>
    /// Json返回结果
    ///说明:必须要重写ErrorMess,否则没有错误返回消息
    /// </summary>
    public abstract class ResultInfoHelper
    {
        /// <summary>
        /// 传入URL和参数,解析返回Json信息,并返回结果
        /// </summary>
        /// <typeparam name="T">参数类型</typeparam>
        /// <param name="_url">URl地址</param>
        /// <param name="args">相关参数</param>
        /// <returns></returns>
        public async Task<T> GetResultInfoGetHelper<T>(string _url,params object[] args)
        {
            string url = string.Format(_url, args);
            string resultUrl = await BaseService.SendGetRequest(url);
            ErrorMess<T>(resultUrl);
            T resultList = JsonConvert.DeserializeObject<T>(resultUrl);
            return resultList;
        }
        /// <summary>
        /// 传入URL和Body,解析返回Json信息,并返回结果
        /// </summary>
        /// <typeparam name="T">参数类型</typeparam>
        /// <param name="_url">URL地址</param>
        /// <param name="body">传入Body</param>
        /// <returns></returns>
        public async Task<T> GetResultInfoPostHelper<T>(string _url,string body)
        {
            string resultUrl = await BaseService.SendPostRequest(_url, body);
            ErrorMess<T>(resultUrl);
            T resultList = JsonConvert.DeserializeObject<T>(resultUrl);
            return resultList;
        }
        /// <summary>
        /// 错误信息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="resultUrl"></param>
        protected abstract void ErrorMess<T>
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇HAXM cannot be installed nutil .. 下一篇UWP 律师查询 MVVM

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目