http的get字符串類型和post自定義類的兩種方法--測試成功

1. string類型的參數,get方法

/// <summary>
        /// 執行服務的方法
        /// </summary>
        /// <param name="MethodName">方法名稱</param>
        /// <param name="pars">參數列表</param>
        /// <param name="_type">返回值類型</param>
        /// <returns></returns>
        public object ExeJsonMethod(string MethodName, List<object> pars, Type _type)
        {
            string strResult = string.Empty;
            string url = DataLib.JsoinServiceURL + MethodName;
            foreach (object _par in pars)
            {
                url += (@"/" + _par.ToString());
            }
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Timeout = 30000;
            request.Headers.Set("Pragma", "no-cache");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream streamReceive = response.GetResponseStream();
            Encoding encoding = Encoding.GetEncoding("UTF-8");
            StreamReader streamReader = new StreamReader(streamReceive, encoding);
            strResult = streamReader.ReadToEnd();
            var serialize = new JavaScriptSerializer();
            var obj = serialize.Deserialize(strResult, _type);
            return obj;
        }

2.自定義的類型用post方法

/// <summary>
        ///  執行含有複雜類型參數的服務方法
        /// </summary>
        /// <param name="MethodName">類型名</param>
        /// <param name="pars">參數列表</param>
        /// <param name="_type">返回值的類型</param>
        /// <returns></returns>
        public object ExeJsonMethodPostPar(string MethodName, object pars, Type _type)
        {
            string baseURL = @"http://localhost:9001/MobileHISRESTService.svc/VerifyCertifications";
            DCUserCertification de = new DCUserCertification() { CertificationContent = @"das", CertificationPassword = "dsa" };
            DataContractJsonSerializer json = new DataContractJsonSerializer(pars.GetType());
            string szJson = "";
            //序列化           
            using (MemoryStream stream = new MemoryStream())
            {
                json.WriteObject(stream, pars);
                szJson = Encoding.UTF8.GetString(stream.ToArray());
            }
            byte[] buffs = Encoding.Default.GetBytes(szJson);
            string strResult = "";
            WebRequest request = WebRequest.Create(baseURL);
            request.Method = @"POST";
            request.ContentType = @"application/json";
            request.ContentLength = buffs.Length;
            request.Timeout = 5000;
            request.Headers.Set("Pragma", "no-cache");
            ////傳入參數
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(buffs, 0, buffs.Length);
            requestStream.Close();
            //獲取返回信息
            WebResponse response = request.GetResponse();
            Stream streamReceive = response.GetResponseStream();
            StreamReader streamReader = new StreamReader(streamReceive);
            strResult = streamReader.ReadToEnd();
            var serialize = new JavaScriptSerializer();
            var obj = serialize.Deserialize(strResult, _type);
            return obj;
        }




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章