/// <summary>
/// POST方式提交 application/json
/// </summary>
/// <param name="postUrl">请求地址</param>
/// <param name="paramData">入参</param>
/// <param name="dataEncode">编码方式</param>
/// <returns></returns>
public string PostWebRequest(string postUrl, string paramData, Encoding dataEncode)
{
string ret = string.Empty;
try
{ byte[] byteArray = dataEncode.GetBytes(paramData); //转化
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //一定要有这一句
ServicePointManager.ServerCertificateValidationCallback = delegate(
Object obj, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
return (true);
}; HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl)); webReq.Method = "POST";
webReq.ContentType = "application/json";
webReq.ContentLength = byteArray.Length;
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);//写入参数
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
ret = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close(); }
catch (Exception ex)
{
MessageBoxs.ShowError(ex.Message);
}
return ret;
} /// <summary>
/// POST方式提交 application/json
/// </summary>
/// <param name="postUrl">请求地址</param>
/// <param name="paramData">入参</param>
/// <param name="dataEncode">编码方式</param>
/// <returns></returns>
public string PostWebRequest(string postUrl, string paramData)
{
string ret = string.Empty;
try
{ byte[] byteArray = Encoding.UTF8.GetBytes(paramData); //转化
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //一定要有这一句
ServicePointManager.ServerCertificateValidationCallback = delegate(
Object obj, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
return (true);
};
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
webReq.Method = "POST";
webReq.ContentType = "application/json";
webReq.ContentLength = byteArray.Length;
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);//写入参数
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
ret = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close(); }
catch (Exception ex)
{
MessageBoxs.ShowError(ex.Message);
} return ret;
} /// <summary>
/// POST方式提交 multipart/form-data
/// </summary>
/// <param name="postUrl">请求的拼接地址及入参(示例:http://ip:端口?a=1&b=2)</param>
/// <returns></returns>
public string PostRequest(string strInterFaceName, string postUrl)
{
string ret = string.Empty;
try
{
byte[] byteArray = Encoding.UTF8.GetBytes(postUrl); //转化
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
webReq.Method = "POST";
webReq.ContentType = "multipart/form-data"; webReq.ContentLength = byteArray.Length;
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);//写入参数
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
ret = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close(); }
catch (Exception ex)
{
MessageBoxs.ShowError(ex.Message);
}
return ret;
} /// <summary>
/// Get提交方式
/// </summary>
/// <param name="getUrl">请求地址</param>
/// <returns></returns>
public string GetWebRequest(string getUrl)
{
string responseStr = string.Empty;
try
{ WebRequest myWebRequest = WebRequest.Create(getUrl);
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream(); if (ReceiveStream != null)
{
StreamReader reader = new StreamReader(ReceiveStream, Encoding.UTF8);
responseStr = reader.ReadToEnd();
reader.Close();
}
myWebResponse.Close(); }
catch (Exception ex)
{ } return responseStr;
} /// <summary>
/// 指定Post地址使用Get 方式获取全部字符串
/// </summary>
/// <param name="url">请求后台地址</param>
/// <returns></returns>
public string Post(string url)
{
string result = ""; ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //一定要有这一句
ServicePointManager.ServerCertificateValidationCallback = delegate(
Object obj, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
return (true);
}; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
} /// <summary>
/// 发送JSON请求
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="json">请求JSON</param>
/// <param name="timeout">超时时间(秒)</param>
/// <returns>响应对象</returns>
public T PostJson<T>(string url, object json, int timeout = 10)
{
try
{
var jsonString = JsonConvert.SerializeObject(json);
var jsonBytes = Encoding.UTF8.GetBytes(jsonString);
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //一定要有这一句
ServicePointManager.ServerCertificateValidationCallback = delegate(
Object obj, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
return (true);
}; HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest; request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
request.ContentLength = jsonBytes.Length;
request.Timeout = timeout * 1000;
ServicePointManager.ServerCertificateValidationCallback = (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) => { return true; };
using (var writer = request.GetRequestStream())
{
writer.Write(jsonBytes, 0, jsonBytes.Length); HttpWebResponse response = request.GetResponse() as HttpWebResponse;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
return JsonConvert.DeserializeObject<T>(reader.ReadToEnd());
}
}
}
catch (Exception ex)
{
throw new Exception(string.Format("请求失败:{0}", ex.Message));
}
} /// <summary>
/// 指定Post地址使用Get 方式获取全部字符串
/// </summary>
/// <param name="url">请求后台地址</param>
/// <returns></returns>
public T DicPost<T>(string url, Dictionary<string, string> dic)
{
//string result = "";
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //一定要有这一句
ServicePointManager.ServerCertificateValidationCallback = delegate(
Object obj, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
return (true);
}; req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
#region 添加Post 参数
StringBuilder builder = new StringBuilder();
int i = 0;
foreach (var item in dic)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
JHLog.Instance().Writelog("builder:" + builder.ToString());
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
#endregion
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
string result = reader.ReadToEnd();
JHLog.Instance().Writelog("响应内容:"+result);
return JsonConvert.DeserializeObject<T>(reader.ReadToEnd());
}
}
catch (Exception ex)
{
throw new Exception(string.Format("请求失败:{0}", ex.Message));
}
} /// <summary>
/// 指定Post地址使用Get 方式获取全部字符串 application/x-www-form-urlencoded
///using System.Net.Security;
///using System.Security.Cryptography.X509Certificates;
/// </summary>
/// <param name="url">请求后台地址</param>
/// <returns></returns>
public string DicPosts(string url, Dictionary<string, string> dic)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //一定要有这一句
ServicePointManager.ServerCertificateValidationCallback = delegate(
Object obj, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
return (true);
};
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
#region 添加Post 参数
StringBuilder builder = new StringBuilder();
int i = 0;
foreach (var item in dic)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
#endregion
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
} /// <summary>
/// POST请求与获取结果
/// 地址:http://ip:port?appid=11&dd=22&appkey=33
/// </summary>
public string HttpPostJson(string Url, string postDataStr)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/json";
// request.ContentLength = postDataStr.Length;
StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.GetEncoding("utf-8"));
writer.Write(postDataStr);
writer.Flush();
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));
string retString = reader.ReadToEnd();
return retString;
}

  

C# POST GET请求方式汇总的更多相关文章

  1. Asp.net页面间传值方式汇总

    七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Application传值,利用某些控件的PostBackUrl属性和使用@Previous ...

  2. Web 前端必备的各种跨域方式汇总

    Web 前端必备的各种跨域方式汇总 跨域方式汇总 同源策略 协议相同 + 域名相同 + 端口相同 https://www.xgqfrms.xyz/index.html https://www.xgqf ...

  3. 限制action所接受的请求方式或请求参数

    原文:http://www.cnblogs.com/liukemng/p/3726897.html 2.限制action所接受的请求方式(get或post): 之前我们在HelloWorldContr ...

  4. Android——JDK的get请求方式

    layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...

  5. 第二节(RequestMapping请求方式)学习尚硅谷-springmvc视频教程

    项目中,创建测试类SpringMVCTest @Controller @RequestMapping("/springmvc1") public class SpringMVCTe ...

  6. jQuery中ajax的4种常用请求方式

    jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数 ...

  7. js中同步与异步请求方式

    异步请求方式: $.ajax({ url : 'your url', data:{name:value}, cache : false, async : true, type : "POST ...

  8. WEB API 中HTTP的get、post、put,delete 请求方式

    一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...

  9. Ajax中的get和post两种请求方式的异同

    Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别.   1. get是把参数数据队列加到提交表单的A ...

  10. HTTP 请求方式: GET和POST的比较(转)

    GET和POST是HTTP的两个常用方法.   什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议 ...

随机推荐

  1. e网通公告

    title:用户须知titleend<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \&qu ...

  2. 【python】读写文件

    1.打开文件与文件模式 1.1 文件模式 (1) 'r':读取模式(默认文件模式,显式指定读取模式的效果和不指定模式相同); (2) 'w':写入模式(如果写入时,文件不存在,会创建文件); 注1:其 ...

  3. 第12周 预习、实验与作业:Java并发编程

    以前你编写的Java程序同时能做几件事情?有几个执行流程?main方法执行完,整个程序一定会退出吗? 最多只能做一件事 函数按着顺序执行,函数内按着语句执行.可以有多个可以有一个. 不一定.因为Mai ...

  4. vue调接口导出表格

     props:{       form:{         type:Object,         default:()=>{}       },       indexNum:{       ...

  5. DoTween结束后删除对象

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...

  6. c基础-Makefile

    Makefile gcc 测试c编译流程.c->.i->.s->.o->可执行程序 # a.c->a.i->a.s->a.o->a# .i 文件生成 - ...

  7. Java-对象 认识对象

    1.对象同时具有属性和方法两个特性.对象的属性和方法通常被封装在一起,共同体现事物特性,两者相辅相成,不可分割

  8. tomcat 3 - 默认连接器

    Tomcat 中使用的容器连接器必须满足以下要求: 实现 org.apache.catalina.Connector 接口 负责创建实现了 org.apache.catalina.Request 接口 ...

  9. mysql5.7主从多线程同步

    数据库复制的主要性能问题就是数据延时 为了优化复制性能,Mysql 5.6 引入了 "多线程复制" 这个新功能 但 5.6 中的每个线程只能处理一个数据库,所以如果只有一个数据库, ...

  10. jquery获取父级容器高度

    //获取浏览器显示区域的高度console.log( $(window).height()); //获取浏览器显示区域的宽度console.log($(window).width()); //获取页面 ...