http的get字符串类型和post自定义类的两种方法--测试成功
2014-12-30 17:07
316 查看
1. string类型的参数,get方法
2.自定义的类型用post方法
/// <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; }
相关文章推荐
- ios中http的两种请求方法:get与post
- 通过HttpClient调用WebApi的Get、Post方法(返回类型限定为json格式)
- Linux命令发送Http的get或post请求(curl和wget两种方法)
- 转: 将Eclipse代码导入到AndroidStudio的两种方式 ,测试了方法2,成功。
- .net调用别人的http页面,返回结果,url中有中文的处理,get和post两种方法
- 两种 HTTP 请求方法:GET 和 POST
- HTTP 两种常用的方法:GET方法与POST方法的比较
- Linux 下模拟Http 的get or post请求(curl和wget两种方法)
- java发送http get请求的两种方法(总结)
- 两种HTTP方法服务器传送表单数据:GET和POST的区别
- Linux 下模拟Http 的get or post请求(curl和wget两种方法)
- HttpUrlcon与HttpClinet(输入网络地址返回字符串,只实现Get方法)
- Linux命令发送Http的get或post请求(curl和wget两种方法)
- <HTTP>ASI实现的注册方法:利用http的get和post两种方式
- httpwebrequest 用GET方法时报无法发送具有此谓词类型的内容正文
- java Http消息传递之POST和GET两种方法--通过实用工具类来获取服务器资源
- 以HttpGet方法获取URL数据并转换成指定编码格式的字符串
- 用浏览器测试Get与Post Webservice,Post一直报405错误,而Get能够成功的原因与解决方法
- 两种 HTTP 请求方法:GET 和 POST