C# Post方式传输报文,和处理响应
2016-01-25 17:52
447 查看
public string DoPost(string url, string data) { HttpWebRequest req = GetWebRequest(url, "POST"); byte[] postData = Encoding.UTF8.GetBytes(data); Stream reqStream = req.GetRequestStream(); reqStream.Write(postData, 0, postData.Length); reqStream.Close(); HttpWebResponse rsp = (HttpWebResponse)req.GetResponse(); Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding); } public HttpWebRequest GetWebRequest(string url, string method) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.ServicePoint.Expect100Continue = false; req.ContentType = "application/x-www-form-urlencoded;charset=utf-8"; req.ContentType = "text/json"; req.Method = method; req.KeepAlive = true; req.UserAgent = "mysoft"; req.Timeout = 1000000; req.Proxy = null; return req; } public string GetResponseAsString(HttpWebResponse rsp, Encoding encoding) { StringBuilder result = new StringBuilder(); Stream stream = null; StreamReader reader = null; try { // 以字符流的方式读取HTTP响应 stream = rsp.GetResponseStream(); reader = new StreamReader(stream, encoding); // 每次读取不大于256个字符,并写入字符串 char[] buffer = new char[256]; int readBytes = 0; while ((readBytes = reader.Read(buffer, 0, buffer.Length)) > 0) { result.Append(buffer, 0, readBytes); } } finally { // 释放资源 if (reader != null) reader.Close(); if (stream != null) stream.Close(); if (rsp != null) rsp.Close(); } return result.ToString(); }
相关文章推荐
- C#报错:InvalidOperationException: out of sync
- C# 日期格式化的中的 正斜杠的问题
- C#实现软件注册码算法
- c#获取带有汉字的字符串长度
- 在C#中保存Bouncy Castle生成的密钥对 【自用笔记】
- cer, pfx 创建,并且读取公钥/密钥,加解密 (C#程序实现) 【笔记】
- C#图片处理常见方法性能比较
- C#入门经典Lambda
- c# 天气预报
- 根据表名得到表信息,包括字段说明,生成C#类属性
- C#中DataTable的用法
- C# 指南之装箱与拆箱
- c#+arcgisengine 对属性表创…
- C# DataGridView使用代码
- C# 测试代码段性能耗时
- C#“可访问性不一致”问题
- C#中Dictionary的用法
- c# google map画点、线
- 【引用】C# +AE加载shp、栅…
- C# ListView用法详解