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;
}

最新文章

  1. java.lang.IllegalStateException: Web app root system property already set to different value
  2. 初识Redis(1)
  3. toLocaleString
  4. BEvent_标准控件Event的用法(案例)(待整理)
  5. LINQ标准查询操作符(五)
  6. 【转】Android学习系列(1)--为App签名(为apk签名)
  7. CSS 有趣的边框
  8. 改变QTreeView项高的方法(改变Delegate行高,或者::data取数据的时候,根据Qt::SizeHintRole进行判断)
  9. Swift 之Protocol在cocoa中的使用范例搜集(一)
  10. [Err] 1136 - Column count doesn't match value count at row 1
  11. java.lang.NumberFormatException错误及解决方法
  12. Openresty 源码安装脚本
  13. Privoxy将Socks代理转化HTTP代理
  14. 命名空间 extern的用法 static全局变量
  15. Javascript Base64加密解密代码
  16. encodeURI、encodeURIComponent
  17. MySQL系统变量配置基础
  18. Redis性能测试Redis-benchmark
  19. CSS文字大小单位px、em、pt详解
  20. Windows下CURL扩展无效之终极解决办法。

热门文章

  1. h5笔记(实战)
  2. String实例 (练习)
  3. SpringBoot安全管理--(二)基于数据库的认证
  4. SAP MM 自定义条件类型出现在采购信息记录的'条件'界面里 ?
  5. Java架构师必看,超详细的架构师知识点分享!
  6. mybatis 测试输出SQL语句到控制台配置
  7. Python核心编程:《8个实践性建议》
  8. 并查集find,merge操作
  9. 解决jmeter5.1高版本linux CPU,IO,Memory监控性能测试 java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t
  10. java 和js 时间 格式化(yyyy-MM-dd HH:mm:ss) 以及获取当前时间