http协议的POST传数据
PostRequest使用StreamWriter对象写入请求流,不需要使用HttpUtility.UrlEncode显示转码,而下面的需要显示转码,还需要将参数转为字节码
蛋疼…………。
public static string PostRequest(string url, string postData)
    {
        HttpWebRequest httpWebRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
        httpWebRequest.Method = "POST";
        httpWebRequest.ServicePoint.Expect100Continue = false;
        httpWebRequest.ContentType = "application/x-www-form-urlencoded";
//写入POST参数
        StreamWriter requestWriter = new StreamWriter(httpWebRequest.GetRequestStream());
        try
        {
            requestWriter.Write(postData);
        }
        finally
        {
            requestWriter.Close();
        }
//读取请求后的结果
        StreamReader responseReader = null;
        string responseData;
        try
        {
            responseReader = new StreamReader(httpWebRequest.GetResponse().GetResponseStream());
            responseData = responseReader.ReadToEnd();
        }
        finally
        {
            httpWebRequest.GetResponse().GetResponseStream().Close();
            responseReader.Close();
        }
        return responseData;
    }
    #endregion
public static string HttpPostWebService(string url, string method, string num1)
    {
        string result = string.Empty;
        string param = string.Empty;
        byte[] bytes = null;
Stream writer = null;
        HttpWebRequest request = null;
        HttpWebResponse response = null;
param = HttpUtility.UrlEncode("name") + "=" + HttpUtility.UrlEncode(num1) ;
        bytes = Encoding.UTF8.GetBytes(param);
request = (HttpWebRequest)WebRequest.Create(url + "/" + method);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = bytes.Length;
try
        {
            writer = request.GetRequestStream();        //获取用于写入请求数据的Stream对象
        }
        catch (Exception ex)
        {
            return "";
        }
writer.Write(bytes, 0, bytes.Length);       //把参数数据写入请求数据流
        writer.Close();
try
        {
            response = (HttpWebResponse)request.GetResponse();      //获得响应
        }
        catch (WebException ex)
        {
            return "";
        }
//#region 这种方式读取到的是一个返回的结果字符串
        //Stream stream = response.GetResponseStream();        //获取响应流
        //XmlTextReader Reader = new XmlTextReader(stream);
        //Reader.MoveToContent();
        //result = Reader.ReadInnerXml();
        //#endregion
#region 这种方式读取到的是一个Xml格式的字符串
        StreamReader reader;
        Stream stream = response.GetResponseStream();
            reader = new StreamReader(stream, Encoding.UTF8);
        result = reader.ReadToEnd();
        #endregion
//response.Dispose();
        response.Close();
//reader.Close();
        //reader.Dispose();
//Reader.Dispose();
        reader.Close();
//stream.Dispose();
        stream.Close();
return result;
    }
http协议的POST传数据的更多相关文章
- 使用HTTP协议向服务器传参的方式及django中获取参数的方式
		使用HTTP协议向服务器传参的四种方式 URL路径携带参数,形如/weather/beijing/2018; 查询字符串(query string),形如key1=value1&key2=va ... 
- 【转】使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?
		使用TCP协议连续传输大量数据时,是否会丢包,应如何避免? 比如发送文件.记得有人提过可能会发生什么堆栈溢出.怎样避免呢?是不是可以收到数据后发送确认包,收到确认包后再继续发送.或是发送方发送了一些数 ... 
- C#实现http协议支持上传下载文件的GET、POST请求
		C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ... 
- Angular js 之动态传数据到下一个页面和动态通过ng-click进入不同的页面
		+关于Angular js中一些千篇一律的后台获取数据 首先在services.js里面把服务写好 然后在controller里面把数据给打印出来 (首先需要把数据注入) +关于Angular js中 ... 
- SpringMVC中使用Json传数据
		在web项目中使用Json进行数据的传输是非常常见且有用的,在这里介绍下在SpringMVC中使用Json传数据的一种方法,在我的使用中,主要包括下面四个部分(我个人喜好使用maven这类型工具进行项 ... 
- java 26 - 9 网络编程之 TCP协议多用户上传文件
		TCP实现多用户上传文件: 需要同时给多用户上传文件,这样就得用多线程来实现. 实际上,这样的话,上传的先后顺序和速度就跟客户端的带宽有关:带宽够,就容易抢占到线程的执行权: 首先,创建个线程类:(这 ... 
- 跨Controllers传数据
		今天遇到两个问题,第一个是跨controller传值,后一个是比较简单的linq数据库查询问题.先描述以下问题我有一个入库单和一个入库明细,入库的逻辑是先填写入库单在填入库明细.两者要么同时完成,要么 ... 
- [置顶] TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)
		eclipse .MyEclipse 配置安装 git:http://wenku.baidu.com/link?url=gMT4a7K6EJWAztuwun73oPHiKqlydEdn5F3S2Win ... 
- 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件
		[源码下载] 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 作者:webabcd 介绍重新想象 Windows 8.1 Sto ... 
随机推荐
- 对C语言整数类型的一点理解
			作者:autogeek 原文链接:http://www.cnblogs.com/autogeek/p/4321635.html 1.先从一个列子引出问题: //sample_1 unsigned ch ... 
- vue 的点击事件怎么获取当前点击的元素
			手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com/),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元 首先 vue的点击事件 是用 @cl ... 
- Hexo | 超详细的hexo+githhub page搭建过程
			首先安装node.js 安装git 去Git官网根据你的电脑参数,下载对应版本. 下载完成,通过在命令行输入 git version 查看是否安装成功,有输出版本号说明安装成功. 鼠标邮件菜单里就多了 ... 
- Nginx Rewrite相关功能
			目录 Nginx Rewrite相关功能 ngx_http_rewrite_module模块指令: if指令: set指令: break指令: return指令: rewrite_log指令: rew ... 
- Linux 实时查看日志文件动态内容
			tailf 27.log | grep 'Classcomment/praise' 'Classcomment/praise' 接口名:查看请求固定接口的时间,实时 tai ... 
- 这个 Python 代码自动补全神器搞得我卧槽卧槽的
			是时候跟你说说这个能让你撸代码撸得舒服得不要不要的神器了——kite. !  简单来说,它是一款 IDE 的插件,能做到代码自动补全,可能你会说了,这有什么牛逼的?一般的编辑器不都有这个功能么 ... 
- Python3.7+Pycharm+cuda10.0+tensorflow GPU版本 安装
			处理器:I5-7500 显卡 :GTX1050Ti 系统 :Win10 1. 首先搭建Python环境. 官网https://www.python.org/downloads/下载Python ... 
- 【Git】git使用 - rebase的使用
			官方参考指南: Pro Git Book v2, § rebasing. English Pro Git Book v2, § rebase:衍合. 中文版 (建议还是看一下英文原版,就当熟练英语.) ... 
- Windos framework .net 3.5规则失败
			1. 安装的时候有一个.net警告,这里给后边造成了一个隐患,实际上是wondows少了一个framework .net的插件,跟SQLserver安装本身没关系,一开始忽略了,后边就报错了. 2.点 ... 
- Selenium实战(七)——自动发送邮件
			SMPT(Simple Mail Transfer Protocol)简单邮件传输协议,是一组由源地址到目的地址传送邮件的规则,可以控制信件的中转方式.Python的smptlib模块提供了简单的AP ... 
