#region GET请求
public static T HttpGet<T>(string url)
{
try
{
string retString = "";
//创建Request对象
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
request.Timeout = 30000;
request.ReadWriteTimeout = 30000;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
//输出响应流
Stream stream = response.GetResponseStream();
using (StreamReader streamReader = new StreamReader(stream, Encoding.UTF8))
{
retString = streamReader.ReadToEnd().ToString();
}
}
//JSON序列化
return JsonConvert.DeserializeObject<T>(retString);
}
catch (Exception e)
{
string mse = e.Message;
return default(T);
}
}
#endregion
#region POST请求
/// <summary>
/// POST请求
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url">请求Url地址</param>
/// <param name="postParameters">post提交参数</param>
/// <returns></returns>
public static T HttpPostDic<T>(string url, Dictionary<string, string> postParameters)
{
try
{
string retString = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;charset:utf-8";
//POST参数
StringBuilder paraStrBuilder = new StringBuilder();
foreach (string key in postParameters.Keys)
{
paraStrBuilder.AppendFormat("{0}={1}&", key, postParameters[key]);
}
string para = paraStrBuilder.ToString();
if (para.EndsWith("&"))
para = para.Remove(para.Length - 1, 1);
//编码要跟服务器编码统一
byte[] bt = Encoding.UTF8.GetBytes(para);
string responseData = String.Empty;
request.ContentLength = bt.Length;
//GetRequestStream输入流数据
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(bt, 0, bt.Length);
reqStream.Close();
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream stream = response.GetResponseStream();
using (StreamReader streamReader = new StreamReader(stream, Encoding.UTF8))
{
retString = streamReader.ReadToEnd().ToString();
}
}
//反序列化
return JsonConvert.DeserializeObject<T>(retString);
}
catch
{
return default(T);
}
}
#endregion
#region POST请求
/// <summary>
/// POST请求
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url">请求Url地址</param>
/// <param name="postParameters">post提交参数</param>
/// <returns></returns>
public static T HttpPostStr<T>(string url, string js)
{
try
{
string retString = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
//注意:输入特定格式的时候头文件上下文需说明,如JSON字符串声明
//为:"application/json;"
request.ContentType = "application/x-www-form-urlencoded;charset:utf-8";
//POST参数
//编码要跟服务器编码统一
byte[] bt = Encoding.UTF8.GetBytes(js);
string responseData = String.Empty;
request.ContentLength = bt.Length;
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(bt, 0, bt.Length);
reqStream.Close();
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream stream = response.GetResponseStream();
using (StreamReader streamReader = new StreamReader(stream, Encoding.UTF8))
{
retString = streamReader.ReadToEnd().ToString();
}
}
return JsonConvert.DeserializeObject<T>(retString);
}
catch(Exception e)
{
return default(T);
}
}
#endregion