使用 GetRequestStream 方法返回流
2008-07-31 09:54
465 查看
GetRequestStream 方法返回用于发送 HttpWebRequest 数据的流。返回 Stream 对象后,可以通过使用 Stream.Write 方法发送带有 HttpWebRequest 的数据。
public static string HttpPost(string url, string postData, int timeout, X509Certificate x509)
{
//设定安全协议为安全套接字层(SSL)3.0协议
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
//用url生成一个HttpWebRequest实例
HttpWebRequest objRequest = (HttpWebRequest) WebRequest.Create(url);
objRequest.Timeout = timeout;
objRequest.Method = "POST";
objRequest.ContentLength = postData.Length;
if (null != x509)
{
objRequest.ClientCertificates.Add(x509);
}
using (StreamWriter myWriter = new StreamWriter(objRequest.GetRequestStream()))
{
myWriter.Write(postData);
}
using (WebResponse response = objRequest.GetResponse())
{
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
return sr.ReadToEnd();
}
}
}
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
这段代码很重要,它设定安全协议。
SecurityProtocolType枚举有两个值
1)Ssl3 指定安全套接字层 (SSL) 3.0 安全协议。
2)Tls 指定传输层安全 (TLS) 1.0 安全协议。
如果url的形式为Https时,如果不设定安全协议,将报WebException异常。
public static string HttpPost(string url, string postData, int timeout, X509Certificate x509)
{
//设定安全协议为安全套接字层(SSL)3.0协议
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
//用url生成一个HttpWebRequest实例
HttpWebRequest objRequest = (HttpWebRequest) WebRequest.Create(url);
objRequest.Timeout = timeout;
objRequest.Method = "POST";
objRequest.ContentLength = postData.Length;
if (null != x509)
{
objRequest.ClientCertificates.Add(x509);
}
using (StreamWriter myWriter = new StreamWriter(objRequest.GetRequestStream()))
{
myWriter.Write(postData);
}
using (WebResponse response = objRequest.GetResponse())
{
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
return sr.ReadToEnd();
}
}
}
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
这段代码很重要,它设定安全协议。
SecurityProtocolType枚举有两个值
1)Ssl3 指定安全套接字层 (SSL) 3.0 安全协议。
2)Tls 指定传输层安全 (TLS) 1.0 安全协议。
如果url的形式为Https时,如果不设定安全协议,将报WebException异常。
相关文章推荐
- 下面的代码示例使用 BeginGetRequestStream 方法对流实例发出异步请求。
- 使用 BeginGetRequestStream 方法对流实例发出异步请求
- eclipse使用ServletActionContext.getRequest总是出错的解決方法
- java getResourceAsStream的使用方法
- HttpWebRequest.GetRequestStream方法timeout的原因及解决办法
- <转载>SpringMVC(7): 对Class.getResourceAsStream和ClassLoader.getResourceAsStream方法所使用的资源路径的解释
- PHP使用stream_context_create()模拟POST/GET请求的方法
- Java 使用getClass().getResourceAsStream()方法获取资源
- request.getParameterMap()使用方法
- Servlet 使用getRequestDispatcher进行请求转发页面未跳转 后台也未报错的问题的解决方法
- MVC 下 JsonResult 的使用方法(JsonRequestBehavior.AllowGet)<转>
- HttpWebRequest.GetRequestStream方法timeout的原因及解决办法
- request.getParameterMap()使用方法
- 使用IHTMLDocument3 的getElementById获取控件总是返回空的解决方法
- 使用Image.GetThumbnailImage 方法返回缩略图
- request.getRealPath()方法不推荐使用
- MVC 下 JsonResult 的使用方法(JsonRequestBehavior.AllowGet)【转】
- 使用View的getWidth(),getHeight()方法返回0的问题
- 关于Object.class.getResourceAsStream方法读取文件的使用
- jQuery的ajax()检验用户名;通过jQuery的load()/get()/post()方法实现;使用XMLHTTPRequest对象来进行AJAX的异步数据交互