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; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。