参考来源:C#后台发送POST和GET请求方法 | IT柚子
命名空间
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
POST
/// <summary>
/// 后台发送POST请求
/// </summary>
/// <param name="url">服务器地址</param>
/// <param name="data">发送的数据</param>
/// <returns></returns>
public string HttpPost(string url, string data)
{
try
{
//创建post请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
byte[] payload = Encoding.UTF8.GetBytes(data);
request.ContentLength = payload.Length;
//发送post的请求
Stream writer = request.GetRequestStream();
writer.Write(payload, 0, payload.Length);
writer.Close();
//接受返回来的数据
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string value = reader.ReadToEnd();
reader.Close();
stream.Close();
response.Close();
return value;
}
catch (Exception)
{
return "";
}
}
上面这个复杂一点的json就不好处理了
推荐用这个
private static string HttpPost1(string url, string json)
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
byte[] byteData = Encoding.UTF8.GetBytes(json);
int length = byteData.Length;
request.ContentLength = length;
Stream writer = request.GetRequestStream();
writer.Write(byteData, 0, length);
writer.Close();
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd();
// MessageBox.Show(responseString.ToString());
return responseString.ToString();
}
get
/// <summary>
/// 后台发送GET请求
/// </summary>
/// <param name="url">服务器地址</param>
/// <param name="data">发送的数据</param>
/// <returns></returns>
public string HttpGet(string url, string data)
{
try
{
//创建Get请求
url = url + (data == "" ? "" : "?") + data;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
//接受返回来的数据
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
string retString = streamReader.ReadToEnd();
streamReader.Close();
stream.Close();
response.Close();
return retString;
}
catch (Exception)
{
return "";
}
}
补充一个log调试
public void Log(params Object[] message)
{
string str = string.Empty;
if (message == null || message.Length == 0)
{
str = "null";
}
else
{
for (int i = 0; i < message.Length; i++)
{
if (str.Length > 0)
{
str += " ";
}
str += message[i];
}
}
Console.WriteLine(str);
// 写入到log日志文件
StreamWriter sw = new StreamWriter(@"test.log", true, Encoding.UTF8);
sw.WriteLine(str);
sw.Close();
}