get方法
/// <summary>
/// 使用get方法获取接口的数据
/// </summary>
/// <param name="url">请求接口地址</param>
/// <returns></returns>
public static string Get(string url)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "Get";
//可添加头部参数
//req.Headers.Add()
try
{
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
//获取的数据返回值
result = reader.ReadToEnd();
}
}
catch (Exception ex)
{
result = ex.Message;
}
return result;
}
post方法
/// <summary>
/// 使用post方法传递参数至对方接口
/// </summary>
/// <param name="serviceAddress">请求接口地址</param>
/// <param name="strContent">数据内容一般是json数据</param>
/// <returns></returns>
public static string Post(string serviceAddress, string strContent)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
request.Method = "POST";
request.ContentType = "application/json";
using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
{
dataStream.Write(strContent);
dataStream.Close();
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string encoding = response.ContentEncoding;
if (encoding == null || encoding.Length < 1)
{
encoding = "UTF-8"; //默认编码
}
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
return reader.ReadToEnd();
}
public static string PostForm(string url, string json = null, Dictionary<string, string> headers = null)
{
try
{
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建http请求实例
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
StringBuilder buffer = new StringBuilder();//使用字典的方式设置入参名与参数
if (headers != null)
{
foreach (var kvp in headers)
{
request.Headers.Add(kvp.Key, kvp.Value);
}
}
//多个参数要用& 符号连接
buffer.AppendFormat("{0}={1}&", "data", json);
//多个参数叠加
//buffer.AppendFormat("{0}={1}&", "startTime", "2022/6/1");
//buffer.AppendFormat("{0}={1}", "APIVersion", "1.0");
byte[] data = Encoding.UTF8.GetBytes(buffer.ToString());
//使用stream建议最好使用using方法 上面post例子 因为using会自动回收
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
//回复
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
string result = streamReader.ReadToEnd();
return result;
}
catch (Exception e)
{
return e.ToString();
}
}
调用
//1 get方法调用
Get(“http://www.xxxx.com”)
//2 post方法调用
string strjson = JsonConvert.SerializeObject(model);
string PostUrl = “http://www.xxxx.com”;
//resultData是post提交后返回的参数
var resultData = Post(PostUrl, strjson);
//3 post带header调用 fromdata的数据格式
Dictionary<string, string> headers = new Dictionary<string, string>()
{
{ "username","sa" } ,
{ "password","123456" }
};
var responseYD = PostForm(PostUrl , strjson, headers);