c# post请求发送数据
/// <summary>
/// POST请求
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="val">请求值</param>
/// <param name="encoding">编码格式</param>
/// <returns></returns>
public string GetHttpPostResponse(string url, string val, Encoding encoding)
{
string strResult = string.Empty;
try
{
HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(url);
myReq.Method = "Post";
myReq.ContentType = "application/x-www-form-urlencoded";
byte[] byteArray = encoding.GetBytes(val);
myReq.ContentLength = byteArray.Length;
Stream stream = myReq.GetRequestStream();
stream.Write(byteArray, 0, byteArray.Length);
stream.Close();
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream();
StreamReader sr = new StreamReader(myStream, encoding);
strResult = sr.ReadToEnd(); }
catch{}
return strResult;
}

如果数据量过大,则建议使用流的方式

方法如下
byte[] bytes=null;
if(sType=="2")
{
bytes= Encoding.UTF8.GetBytes(sb.ToString());
}
else
{
bytes= Encoding.UTF8.GetBytes(sbd.ToString());
}
bool b =PostBaitourZrateModel(strurl,bytes);
/// <summary>
/// POST数据得到结果
/// </summary>
/// <param name="strUrl">URL</param>
/// <param name="strParm">参数</param>
/// <returns>string</returns>
private static bool PostBaitourZrateModel(string strUrl, byte[] strParm)
{
StringBuilder str = new StringBuilder();
bool isRec = false;
try
{
Encoding encode = System.Text.Encoding.UTF8;
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(strUrl);
myReq.Timeout = 900000;
myReq.Method = "POST";
myReq.ContentType = "multipart/form-data";
myReq.ContentLength = strParm.Length;
myReq.AllowWriteStreamBuffering = false;
Stream outStream = myReq.GetRequestStream();
outStream.Write(strParm, 0, strParm.Length);
outStream.Close();
WebResponse myResp = null;
myResp = myReq.GetResponse();
Stream ReceiveStream = myResp.GetResponseStream();
StreamReader readStream = new StreamReader(ReceiveStream, encode);
Char[] read = new Char[256];
int count = readStream.Read(read, 0, 256); while (count > 0)
{
str.Append(new String(read, 0, count));
count = readStream.Read(read, 0, 256);
}
readStream.Close();
myResp.Close();
if (str.ToString().ToUpper().IndexOf("SUCCESS") >= 0)
{
isRec = true;
}
}
catch (Exception ex)
{
isRec = false;
new Error().WriteFilesErrorLog(ex.Message,"12580消息通知");
} return isRec;
}


C#接收post请求的数据

	private string PostInput()
        {
            try
            {
                System.IO.Stream s = Request.InputStream;
                int count = 0;
                byte[] buffer = new byte[1024];
                StringBuilder builder = new StringBuilder();
                while ((count = s.Read(buffer, 0, 1024)) > 0)
                {
                    builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
                }
                s.Flush();
                s.Close();                 return builder.ToString();
            }
            catch (Exception ex)
            { throw ex; }
        }

c#POST请求和接收post请求的更多相关文章

  1. .net core 源码解析-web app是如何启动并接收处理请求(二) kestrel的启动

    上篇讲到.net core web app是如何启动并接受请求的,下面接着探索kestrel server是如何完成此任务的. 1.kestrel server的入口KestrelServer.Sta ...

  2. .net core 源码解析-web app是如何启动并接收处理请求

    最近.net core 1.1也发布了,蹒跚学步的小孩又长高了一些,园子里大家也都非常积极的在学习,闲来无事,扒拔源码,涨涨见识. 先来见识一下web站点是如何启动的,如何接受请求,.net core ...

  3. Android HTTP实例 发送请求和接收响应

    Android HTTP实例 发送请求和接收响应 Android Http连接 实例:发送请求和接收响应 添加权限 首先要在manifest中加上访问网络的权限: <manifest ... & ...

  4. linux原始套接字(2)-icmp请求与接收

    一.概述                                                    上一篇arp请求使用的是链路层的原始套接字.icmp封装在ip数据报里面,所以icmp请 ...

  5. 安装lua_zlib让OpenResy可以接收gzip请求

    1.下载和安装lua_zlib wget https://github.com/brimworks/lua-zlib/archive/master.zip unzip master.zip cd lu ...

  6. struts2之请求参数接收

    struts2之请求参数接收 1. 采用基本类型接受请求参数(get/post)在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名的属性.请求路径:http:/ ...

  7. 使用HttpClient发送请求、接收响应

    使用HttpClient发送请求.接收响应很简单,只要如下几步即可. 1.创建HttpClient对象.  CloseableHttpClient httpclient = HttpClients.c ...

  8. Struts2 请求参数接收

    在Struts2中提供了更为简单的参数请求与接收方法,可以直接在Action中定义属性:Struts2通过反射机制将参数反射到属性的set方法上实现参数的传递: GET方式传送参数 <strut ...

  9. Struts2 Action接收POST请求JSON数据及其实现解析

    一.认识JSON JSON是一种轻量级.基于文本.与语言无关的数据交换格式,可以用文本格式的形式来存储或表示结构化的数据. 二.POST请求与Content-Type: application/jso ...

随机推荐

  1. sqlserver查询编辑器编辑数据

    1.我想编辑这几行的sortid,方式可以直接写sql,但是还有一种更简洁的方法,如下: 2.用这种方式可以直接修改,比较方便. 3.总结:要做一件事情,可能有很多种方法.而且很有可能有简单的方法,如 ...

  2. SQLServer中数据库文件的存放方式,文件和文件组

    我们公司近一年来做了一个CRM系统. 遇到一个问题就是:在插入交流记录的时候速度特别慢.(交流记录数据量大) 后来我们经理采用文件组的方法,将客户交流记录这张表提出来就快很多了 这里有一篇关于文件组的 ...

  3. IC封装图片认识(一):BGA

    在上篇文章<常用IC封装技术介绍>第一个提到的IC封装形式就是BGA,全称是Ball Grid Array(球栅阵列结构的PCB),它是集成电路采用有机载板的一种封装法.其具有以下五个特点 ...

  4. 用continue语句的时候,要千万小心内存泄漏,当然还有return和break也是

    疑惑了大半年的内存泄漏,居然是因为这个原因- 有空学学QT的指针使用,可以使得代码更简洁.更不容易内存泄漏-

  5. SQL查询最近三个月的数据(查询最近几天,几年等等)

    定义和用法      :: 天,这样就可以找到付款日期. 我们使用如下 ,OrderDate) AS OrderPayDate FROM Orders 结果: OrderId    OrderPayD ...

  6. HDU 5428 The Factor (素因数分解)

    题意:给出n个数,问这n个数的乘积中至少有三个因子的最小因子.若不存在这样的因子,则输出 -1: 思路:求出每个数的最小的两个素因数,然后输出其中最小的两个数的乘积. 代码: #include< ...

  7. hdu4453-Looploop(伸展树)

    题目有很多图,不好粘贴..... 题意:给出N个数和K1,K2的值,最开始指针指向第一个数,有6种操作 add x : 给前K2个数都增加x reverse : 翻转前K1个数 insert x : ...

  8. hdu 1429 胜利大逃亡(续)(bfs+状态压缩)

    Problem Description Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)…… 这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带 ...

  9. 【解决方法】EasyUI DataGrid不显示滚动条时,没有数据的问题

    解决方法 于dataGrid例如,下面的代码被添加到的定义:  JavaScript Code  1 2 3 4 5 6 7 8 9 10 onLoadSuccess : function (data ...

  10. AfxBeginThread的介绍/基本用法

    AfxBeginThread    用户界面线程和工作者线程都是由AfxBeginThread创建的.现在,考察该函数:MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一 ...