赞
踩
调用如下:
var result = HttpHelper.GetResponseString(HttpHelper.CreatePostHttpResponse(url, dic, 0, null));
其中,url是请求地址,dic 是实例化的字典值。
封装的HttpHelper如下:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace XingcOpen.ILS.Core.Http
{
public static class HttpHelper
{
/// <summary>
/// 创建GET方式的HTTP请求
/// </summary>
public static HttpWebResponse CreateGetHttpResponse(string url, CookieCollection cookies)
{
HttpWebRequest request = null;
request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "GET";
request.Proxy = null;
if (cookies != null)
{
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(cookies);
}
return request.GetResponse() as HttpWebResponse;
}
/// <summary>
/// 创建POST方式的HTTP请求
/// </summary>
public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters, int timeout, string userAgent, CookieCollection cookies)
{
HttpWebRequest request = null;
request = WebRequest.Create(url) as HttpWebRequest;
request.Proxy = null;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
if (timeout > 0)
request.Timeout = timeout;
if (string.IsNullOrEmpty(userAgent))
request.UserAgent = userAgent;
if (cookies != null)
{
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(cookies);
}
//发送POST数据
if (!(parameters == null || parameters.Count == 0))
{
StringBuilder buffer = new StringBuilder();
int i = 0;
foreach (string key in parameters.Keys)
{
if (i > 0)
{
buffer.AppendFormat("&{0}={1}", key, parameters[key]);
}
else
{
buffer.AppendFormat("{0}={1}", key, parameters[key]);
i++;
}
}
byte[] data = Encoding.UTF8.GetBytes(buffer.ToString());
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
string[] values = request.Headers.GetValues("Content-Type");
return request.GetResponse() as HttpWebResponse;
}
public static HttpWebResponse CreatePostHttpResponse(string url, string jsonParam)
{
HttpWebRequest request = null;
request = WebRequest.Create(url) as HttpWebRequest;
request.Proxy = null;
request.Method = "POST";
request.ContentType = "application/json";
byte[] data = Encoding.UTF8.GetBytes(jsonParam);
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
return request.GetResponse() as HttpWebResponse;
}
public static HttpWebResponse CreatePostHttpResponse(string url, int timeout, string jsonParam)
{
HttpWebRequest request = null;
request = WebRequest.Create(url) as HttpWebRequest;
request.Proxy = null;
request.Method = "POST";
request.ContentType = "application/json";
request.Timeout = timeout;
byte[] data = Encoding.UTF8.GetBytes(jsonParam);
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
return request.GetResponse() as HttpWebResponse;
}
/// <summary>
/// 获取请求的数据
/// </summary>
public static string GetResponseString(HttpWebResponse webresponse)
{
using (Stream s = webresponse.GetResponseStream())
{
StreamReader reader = new StreamReader(s, Encoding.UTF8);
return reader.ReadToEnd();
}
}
/// <summary>
/// 获取请求的数据
/// </summary>
public static string GetResponseStringUncode(HttpWebResponse webresponse)
{
using (Stream s = webresponse.GetResponseStream())
{
StreamReader reader = new StreamReader(s, Encoding.GetEncoding("GB2312"));
return reader.ReadToEnd();
}
}
public static HttpWebResponse CreatePostHttpResponse(string url)
{
HttpWebRequest request = null;
request = WebRequest.Create(url) as HttpWebRequest;
request.Proxy = null;
request.Method = "POST";
request.ContentType = "application/json";
return request.GetResponse() as HttpWebResponse;
}
/// <summary>
/// 创建POST方式的HTTP请求
/// </summary>
public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters, int timeout, string param)
{
HttpWebRequest request = null;
request = WebRequest.Create(url) as HttpWebRequest;
request.Proxy = null;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
if (timeout > 0)
request.Timeout = timeout;
if (!string.IsNullOrEmpty(param))
request.Headers.Add("Authorization", param);
//发送POST数据
if (!(parameters == null || parameters.Count == 0))
{
StringBuilder buffer = new StringBuilder();
int i = 0;
foreach (string key in parameters.Keys)
{
if (i > 0)
{
buffer.AppendFormat("&{0}={1}", key, parameters[key]);
}
else
{
buffer.AppendFormat("{0}={1}", key, parameters[key]);
i++;
}
}
byte[] data = Encoding.UTF8.GetBytes(buffer.ToString());
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
string[] values = request.Headers.GetValues("Content-Type");
return request.GetResponse() as HttpWebResponse;
}
public static HttpWebResponse CreatePostHttpResponse(string url, int timeout, string jsonParam,string param)
{
HttpWebRequest request = null;
request = WebRequest.Create(url) as HttpWebRequest;
request.Proxy = null;
request.Method = "POST";
request.ContentType = "application/json";
request.Timeout = timeout;
if (!string.IsNullOrEmpty(param))
request.Headers.Add("Authorization", param);
byte[] data = Encoding.UTF8.GetBytes(jsonParam);
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
return request.GetResponse() as HttpWebResponse;
}
}
}
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。