前情提要
使用过的一些HTTP请求代码,做个笔记
GET请求
/// <summary>
/// Get请求
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string GetFunction(string url)
{
string serviceAddress = url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
POST请求
1、第一种(string类型参数)
public static string _Post(string url,string str)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] data = Encoding.UTF8.GetBytes(str);//把字符串转换为字节
req.ContentLength = data.Length; //请求长度
using (Stream reqStream = req.GetRequestStream()) //获取
{
reqStream.Write(data, 0, data.Length);//向当前流中写入字节
reqStream.Close(); //关闭当前流
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); //响应结果
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
}
2、第二种(Dictionary类型参数)
/// <summary>
/// post请求
/// </summary>
/// <param name="url"></param>
/// <param name="dic"></param>
/// <returns></returns>
public static string Post(string url, Dictionary<string, string> dic)
{
string result = "";
//添加Post 参数
System.Text.StringBuilder builder = new System.Text.StringBuilder();
int i = 0;
foreach (var item in dic)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
byte[] postData = System.Text.Encoding.UTF8.GetBytes(builder.ToString());
System.Net.HttpWebRequest _webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
_webRequest.Method = "POST";
//_webRequest.ContentType = "application/json";
//内容类型
_webRequest.ContentType = "application/x-www-form-urlencoded";
_webRequest.Timeout = 1000 * 30;
_webRequest.ContentLength = postData.Length;
using (System.IO.Stream reqStream = _webRequest.GetRequestStream())
{
reqStream.Write(postData, 0, postData.Length);
reqStream.Close();
}
System.Net.HttpWebResponse resp = (System.Net.HttpWebResponse)_webRequest.GetResponse();
System.IO.Stream stream = resp.GetResponseStream();
//获取响应内容
using (System.IO.StreamReader reader = new System.IO.StreamReader(stream, System.Text.Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
}
使用示例
//Get
GetFunction("https://blog.hmister.net/");
//Post第一种
_Post("https://blog.hmister.net/","aa=1&bb=2");
//Post第二种
var data = new Dictionary<string, string>();
data.Add("aa", 1);
data.Add("bb", 2);
Post("https://blog.hmister.net/",data);
评论 (0)