https://blog.csdn.net/qq_21381465/article/details/80016159

我是通过VS2010 ,新建一个winform窗体项目,然后写了一个测试软件,软件里最后通过HTTP的POST把测试结果数据上传到一个网页系统里,我们之间的协议很简单:

C#这边就是标准的POST发送格式(网页系统服务器地址+端口号+具体路径+一个问号+数据字段名=数据值 +&+数据字段名=数据值………)

网页系统那边返回jason格式对象(左大括号{ + 双引号里字段名 + 引号 + 双引号里字段值…………)

直接打开浏览器,在地址栏里输入HTTP Post要发送给网页系统的数据,也可以运行的

作者:维兹-卡利法

来源:CSDN

原文:https://blog.csdn.net/qq_21381465/article/details/80016159

版权声明:本文为博主原创文章,转载请附上博文链接!

头文件

using System.Net.Http;

using System.Net;

            Encoding myEncoding = Encoding.GetEncoding("gb2312");  //选择编码字符集
string data = "sn=" + _uScanCode + "&lanMac=" + _sRecieveLanMac + "&wifiMac=" + _sRecieveWifi2Mac + "&testUserName=" + sTestUser + "&testDateTime=" + sTimeStr; //要上传到网页系统里的数据(字段名=数值 ,用&符号连接起来)
byte[] bytesToPost = System.Text.Encoding.Default.GetBytes(data); //转换为bytes数据 string responseResult = String.Empty;
HttpWebRequest req = (HttpWebRequest)
HttpWebRequest.Create("http://192.168.60.59:81/rpc/snBurn/insertBySN"); //创建一个有效的httprequest请求,地址和端口和指定路径必须要和网页系统工程师确认正确,不然一直通讯不成功
req.Method = "POST";
req.ContentType =
"application/x-www-form-urlencoded;charset=gb2312";
req.ContentLength = bytesToPost.Length; using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bytesToPost, 0, bytesToPost.Length); //把要上传网页系统的数据通过post发送
}
HttpWebResponse cnblogsRespone = (HttpWebResponse)req.GetResponse();
if (cnblogsRespone != null && cnblogsRespone.StatusCode == HttpStatusCode.OK)
{
StreamReader sr;
using (sr = new StreamReader(cnblogsRespone.GetResponseStream()))
{
responseResult = sr.ReadToEnd(); //网页系统的json格式的返回值,在responseResult里,具体内容就是网页系统负责工程师跟你协议号的返回值协议内容
}
sr.Close();
}
cnblogsRespone.Close();

作者:维兹-卡利法

来源:CSDN

原文:https://blog.csdn.net/qq_21381465/article/details/80016159

版权声明:本文为博主原创文章,转载请附上博文链接!

C# 实现HTTP的POST(完整可运行并且通过测试的代码)的更多相关文章

  1. XGBoost中参数调整的完整指南(包含Python中的代码)

    (搬运)XGBoost中参数调整的完整指南(包含Python中的代码) AARSHAY JAIN, 2016年3月1日     介绍 如果事情不适合预测建模,请使用XGboost.XGBoost算法已 ...

  2. 在线运行Javascript,Jquery,HTML,CSS代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xht ...

  3. 使用非 GUI 模式运行 JMeter 压力测试

    使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...

  4. 新人如何运行Faster RCNN的tensorflow代码

    0.目的 刚刚学习faster rcnn目标检测算法,在尝试跑通github上面Xinlei Chen的tensorflow版本的faster rcnn代码时候遇到很多问题(我真是太菜),代码地址如下 ...

  5. 完整的JavaScript版的信用卡校验代码

    function isValidCreditCard(type, ccnum) { if (type == "Visa") { // Visa: length 16, prefix ...

  6. 青蛙跳100级台阶算法,完整可运行,php版本

    /* 算法题目 * 2016年4月11日16:11:08 * 一只青蛙,一次可以跳1步,或者2步,或者3步,现在要跳100级台阶,请问青蛙有多少种上100级台阶的跳法 * 1步的有$n 2步的有$m ...

  7. Java基础(49):快速排序的Java封装(含原理,完整可运行,结合VisualGo网站更好理解)

    快速排序 对冒泡排序的一种改进,若初始记录序列按关键字有序或基本有序,蜕化为冒泡排序.使用的是递归原理,在所有同数量级O(n longn) 的排序方法中,其平均性能最好.就平均时间而言,是目前被认为最 ...

  8. Java基础(48):归并排序的Java封装含原理,完整可运行,结合VisualGo网站更好理解)

    原理: 归并排序建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用. 将已有序的子序列合并,得到完全有序的序列:即先使每个子序列有序, ...

  9. Java基础(46):选择排序的Java封装(完整可运行)

    1 package lsg.ap.select; import java.util.Random; public class SelectSort { //选择排序 /** *@author: 梁山广 ...

随机推荐

  1. quartz——JobExecutionContext和JobDataMap

    控制器传值,需要根据对应值创建,启动以及对定时任务的相关操作:JobExecutionContext和JobDataMap基本用法,代码待优化,主要是用法吧第一:控制器, @RequestMappin ...

  2. MySQL/MariaDB数据库的触发器

    MySQL/MariaDB数据库的触发器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.触发器概述 1>.什么是触发器 触发器的执行不是由程序调用,也不是由手工启动,而是 ...

  3. sq分页

    create proc RowNumber @pageindex int,@pagesize int AS BEGIN select * from (select ROW_NUMBER() OVER( ...

  4. 1220 Vue与Django前后端的结合

    目录 vue的安装 Vue前端的设置 页面的分布 后台数据的替换 css样式 Django的配置 国际化配置 axios插件安装 CORS跨域问题(同源策略) 处理跨域问题: cors插件 axios ...

  5. MySQL 日期格式化,取年月日等相关操作

    日期取年.月.日 select id, phone,time,year(time),month(time), DAY(time),TIME(time) from user where phone='x ...

  6. Goexit

    package main import ( "fmt" "runtime" ) func test() { defer fmt.Println("cc ...

  7. sql server 能按照自己规定的字段顺序展示

    工作中遇到,需要把sql 查询的按照指定的顺序显示 select plantname,cc_type,all_qty from VIEW_TEMP_DAY_CVT_CAP a where a.docd ...

  8. DOM内容梳理2

    JavaScript-DOM2(内容整理) 这两天新的知识有点多有点杂一时半会没有整理过来,以后不出意外会一直更行. js节点类型(NODETYPE) 查看节点类型 nodetype属性,返回的结果会 ...

  9. rpmlint 方便的rpm spec 以及rpm 文件检查工具

    rpmlint 可以方便的让我们检查rpm spec 的信息,给予我们提示以及改进,同时也支持对于rpm 文件处理 安装 yum install -y rpmlint 使用 spec 检查 rpmli ...

  10. 分库分表相关 - hash与range结合去分库分表

    相关文章1 整体看下来通过hash取模去分库,然后根据range去分到哪个区间的表中. 具体还要实践下来.