http协议的POST传数据
PostRequest使用StreamWriter对象写入请求流,不需要使用HttpUtility.UrlEncode显示转码,而下面的需要显示转码,还需要将参数转为字节码
蛋疼…………。
public static string PostRequest(string url, string postData)
{
HttpWebRequest httpWebRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
httpWebRequest.Method = "POST";
httpWebRequest.ServicePoint.Expect100Continue = false;
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
//写入POST参数
StreamWriter requestWriter = new StreamWriter(httpWebRequest.GetRequestStream());
try
{
requestWriter.Write(postData);
}
finally
{
requestWriter.Close();
}
//读取请求后的结果
StreamReader responseReader = null;
string responseData;
try
{
responseReader = new StreamReader(httpWebRequest.GetResponse().GetResponseStream());
responseData = responseReader.ReadToEnd();
}
finally
{
httpWebRequest.GetResponse().GetResponseStream().Close();
responseReader.Close();
}
return responseData;
}
#endregion
public static string HttpPostWebService(string url, string method, string num1)
{
string result = string.Empty;
string param = string.Empty;
byte[] bytes = null;
Stream writer = null;
HttpWebRequest request = null;
HttpWebResponse response = null;
param = HttpUtility.UrlEncode("name") + "=" + HttpUtility.UrlEncode(num1) ;
bytes = Encoding.UTF8.GetBytes(param);
request = (HttpWebRequest)WebRequest.Create(url + "/" + method);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = bytes.Length;
try
{
writer = request.GetRequestStream(); //获取用于写入请求数据的Stream对象
}
catch (Exception ex)
{
return "";
}
writer.Write(bytes, 0, bytes.Length); //把参数数据写入请求数据流
writer.Close();
try
{
response = (HttpWebResponse)request.GetResponse(); //获得响应
}
catch (WebException ex)
{
return "";
}
//#region 这种方式读取到的是一个返回的结果字符串
//Stream stream = response.GetResponseStream(); //获取响应流
//XmlTextReader Reader = new XmlTextReader(stream);
//Reader.MoveToContent();
//result = Reader.ReadInnerXml();
//#endregion
#region 这种方式读取到的是一个Xml格式的字符串
StreamReader reader;
Stream stream = response.GetResponseStream();
reader = new StreamReader(stream, Encoding.UTF8);
result = reader.ReadToEnd();
#endregion
//response.Dispose();
response.Close();
//reader.Close();
//reader.Dispose();
//Reader.Dispose();
reader.Close();
//stream.Dispose();
stream.Close();
return result;
}
最新文章
- java.lang.IllegalStateException: Web app root system property already set to different value
- 初识Redis(1)
- toLocaleString
- BEvent_标准控件Event的用法(案例)(待整理)
- LINQ标准查询操作符(五)
- 【转】Android学习系列(1)--为App签名(为apk签名)
- CSS 有趣的边框
- 改变QTreeView项高的方法(改变Delegate行高,或者::data取数据的时候,根据Qt::SizeHintRole进行判断)
- Swift 之Protocol在cocoa中的使用范例搜集(一)
- [Err] 1136 - Column count doesn't match value count at row 1
- java.lang.NumberFormatException错误及解决方法
- Openresty 源码安装脚本
- Privoxy将Socks代理转化HTTP代理
- 命名空间 extern的用法 static全局变量
- Javascript Base64加密解密代码
- encodeURI、encodeURIComponent
- MySQL系统变量配置基础
- Redis性能测试Redis-benchmark
- CSS文字大小单位px、em、pt详解
- Windows下CURL扩展无效之终极解决办法。
热门文章
- h5笔记(实战)
- String实例 (练习)
- SpringBoot安全管理--(二)基于数据库的认证
- SAP MM 自定义条件类型出现在采购信息记录的'条件'界面里 ?
- Java架构师必看,超详细的架构师知识点分享!
- mybatis 测试输出SQL语句到控制台配置
- Python核心编程:《8个实践性建议》
- 并查集find,merge操作
- 解决jmeter5.1高版本linux CPU,IO,Memory监控性能测试 java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t
- java 和js 时间 格式化(yyyy-MM-dd HH:mm:ss) 以及获取当前时间