Get 和 Post 使用篇(1)

1.Post 请求发送方式

实例:

const string sResponseEncoding = "gb2312";

//测试文本信息

string postText = "{\"touser\":\"OpenId\",\"msgtype\":\"text\",\"text\":{\"content\":\"Hello World\"}}";

//测试图文信息

string postNews = "{\"touser\":\"OpenId\",\"msgtype\":\"news\",\"news\":{\"articles\":[{\"title\":\"测试1\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"http://avatar.csdn.net/C/2/8/1_zhoufoxcn.jpg\"},{\"title\":\"测试2\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"http://avatar.csdn.net/C/2/8/1_zhoufoxcn.jpg\"}]}}";

const string url = "http;//URL";

HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);

webrequest.Method = "post";

webrequest.Timeout = 10000;     //响应时间时间

webrequest= "application/json;charset=UTF-8";   //传递格式

webrequest.Credentials = CredentialCache.DefaultCredentials; //请求的身份验证信息为默认

string key = "My-Key";   //默认密钥

string timestamp = DateTime.Now.Ticks.ToString();//时间戳

webrequest.Headers.Add(“key”, key);

webrequest.Headers.Add(“timestamp”, timestamp);

//字符-字节-流

byte[] postdatabyte = Encoding.UTF8.GetBytes(postText);

webrequest.ContentLength = postdatabyte.Length;

Stream stream;

stream = webrequest.GetRequestStream();

stream.Write(postdatabyte, 0, postdatabyte.Length);

stream.Close();

Stream responseStream;

try

{  responseStream = webrequest.GetResponse().GetResponseStream();  }

catch (Exception e)

{  Console.WriteLine(string.Format("POST 操作发生异常:{0}", e.Message));   throw e;  }

string stringResponse = string.Empty;

using (StreamReader responseReader = new StreamReader(responseStream, Encoding.GetEncoding(sResponseEncoding)))

{

stringResponse = responseReader.ReadToEnd();

}

responseStream.Close();

Console.WriteLine(stringResponse);

Console.ReadKey();

2.Get 请求方式(httpClient)

HttpClient httpClient = new HttpClient();

string key = "My-Key";   //默认密钥

string timestamp = DateTime.Now.Ticks.ToString();

string url = “”;

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);

request.Headers.Add(key, key);

request.Headers.Add(timestamp, timestamp);

HttpResponseMessage responseMessage = await httpClient.SendAsync(request);

Console.WriteLine(await responseMessage.Content.ReadAsStringAsync());

Console.ReadKey();

3.服务器接口

public ActionResult ReceiveData(string jsonpcallback)

{

var headers = HttpContext.Request.Headers.ToString();//获取headers 内容
            Stream s = System.Web.HttpContext.Current.Request.InputStream;
            byte[] receByte = new byte[s.Length];
            s.Read(receByte, 0, (int)s.Length);

var receData = Encoding.UTF8.GetString(receByte);
           var JsReceData = Newtonsoft.Json.JsonConvert.DeserializeObject<WxReceive>(receData);

//返回参数格式

if (string.IsNullOrEmpty(jsonpcallback))
             return Json(QRTxt);
        else
            return JavaScript(string.Format("{0}({1});", jsonpcallback, Newtonsoft.Json.JsonConvert.SerializeObject(QRTxt)));

}

//声明实体类

public class WxReceive
    {
        public string touser { get; set; }
        public string msgtype { get; set; }
    }

//微信图文消息实体类
    public class WxReceiveNews
    {
        public string touser { get; set; }
        public string msgtype { get; set; }
        public news news { get; set; }
    }
    public class news
    {
        public List<articles> articles { get; set; }
    }
    public class articles
    {
        public string title { get; set; }
        public string description { get; set; }
        public string url { get; set; }
        public string picurl { get; set; }
    }

4.其它

传递到服务器Base64,字符串进行URL解码:

HttpUtility.UrlDecode(data.ToString().Trim());

参考文章和资源:

Post和Get 实例 http://blog.csdn.net/make1828/article/details/40649759

Post 提交讲解:https://imququ.com/post/four-ways-to-post-data-in-http.html

https://support.microsoft.com/zh-cn/kb/908573

http://www.cnblogs.com/ThomasNet/archive/2007/09/03/879331.html

http://www.cnblogs.com/netqq/p/5773846.html

http://bbs.csdn.net/topics/390820845/

http://blog.csdn.net/make1828/article/details/40649759

时间: 2024-10-08 07:44:57

Get 和 Post 使用篇(1)的相关文章

诗经 全文

诗经 全文 (带注释和译文) http://www.edu009.com/Article/HTML/Article_60756.html <诗经> 春秋·孔丘 <诗经>是我国第一部诗歌总集,先秦时代称为“诗”或“诗三百”,孔子加以了整理.汉武帝采纳董仲舒“罢黜百家,独尊儒术”的建议,尊“诗”为经典,定名为<诗经>. <诗经>现存诗歌 305 篇,包括西周初年到春秋中叶共 500 余年的民歌和朝庙乐章,分为风.雅.颂三章. “风”包括周南.召南.邶.鄘.卫.王

如何使用GNS3和Cisco IOU搭建路由交换实验-IOU篇

前面介绍了GNS3的概念,安装,配置和使用,本篇将介绍怎么利用GNS3配置IOU从而实现使用GNS3和Cisco IOU搭建路由交换实验. 由于本篇篇幅较长,所以先过一下大纲: 1. IOU模拟环境介绍 2. IOU软件环境的准备 3. VMware虚拟机的安装.导入和配置 4. IOU镜像的上传 5. GNS3的配置 6. IOU模拟环境的实现 IOU模拟环境介绍 IOU即IOS running in Unix,最初是由思科内部人员开发来测试IOS的平台,后来流传到互联网经网友改进有了后来的W

【Windows10&nbsp;IoT开发系列】配置篇

原文:[Windows10 IoT开发系列]配置篇 Windows10 For IoT是Windows 10家族的一个新星,其针对不同平台拥有不同的版本.而其最重要的一个版本是运行在Raspberry Pi.MinnowBoard和Galileo平台上的核心版.本文重点针对Raspberry Pi平台的Windwos10 IoT配置做介绍. Windows 10 IoT Editions ​一:设置你的电脑. 注:​开发Windows10 IoT的电脑需要Visual Studio 2015.

oracle数据库(新建数据库)超小白篇

用过Mysql.sqlserver.Oracle 不知道有没有比oracle建库还复杂的 显示:win10系统 1.找到文件夹Oracle-OraDb10g_home1 2.选择Database Configuration Assistant,运行程序 3.选择下一步 ...................................................................................结束..............................

STM32F4XX高效驱动篇2 I2C

说到I2C很多用过STMF10X硬件I2C方式的工程师,都感觉有点头痛.大部分还是使用软件模拟的方式,I2C由于一般的工作频率是400,100KHz.所以在平凡读取,或所读数据量大时,使用这模拟的方式,还是比较浪费CPU有效工作时间的. 在之前的使用I2C的经历中,主要是I2C死锁问题让我也困扰了一段时间.不过后来经过多方资料,最后还是把这个问题解决了.以下驱动程序已集成了此功能. 什么是死锁,在I2C主设备进行读写操作的过程中.主设备在开始信号后控制SCL产生8个时钟脉冲,然后拉低SCL信号为

STM32F4XX高效驱动篇1-UART

之前一直在做驱动方面的整理工作,对驱动的高效性有一些自己的理解这里和大家分享一下.并奉驱动程序,本程序覆盖uart1-8. 串口驱动,这是在每个单片机中可以说是必备接口.可以说大部分产品中都会使用,更有甚者一个产品中用到8个串口.这样一个高效的驱动是决定您产品优劣的关键因素.本文主要针对STM32F4XX系列芯片做的一个驱动接口层.以减少您在开发项目时驱动方面所花费时间,以及为程序达到高效的处理为目的. 从51,pic到现在的STM32,个人感觉STM32这方面做的非常突出,丰富的使用模式,强大

连载《一个程序猿的生命周期》-《发展篇》- 12.向生活妥协的选择之路,你也面临吗?

本篇文章的主角是第二个加入我们团队的,暂且称他为G兄.是我第二家公司的同事,但是当时并没有交集,后来经过其他同事说起,被我招过来的.关于第二家公司的情况,请参见<而立之年,第一次跳槽,寻求转型> 在加入我们团队之前,G兄在一个不大不小的公司做内部OA系统,众所周知不会有什么太大发展,他当时也不太满意.在和他交流的过程中,我说的很直接:1.开发公司内部OA,并非公司实际产品,无法直接创造利润,就算是公司的产品,现在做OA的多了去了.2.OA开发完成后,只剩运维人员,假设裁掉一部分人员的话,你怎么

第3篇-JAVA基础

第3篇-JAVA基础 每篇一句 :目标是给梦想一个期限,行动与坚持就是实现梦想的过程 初学心得: 遇到困难或问题,它不是休止符,而是引向你如何解决问题的标识 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-26| JAVA基础 Ⅱ] 上篇回顾 上篇文章中我们学习了JAVA底层的运行机制与深入剖析以及解释其中JAVA基础代码的含义 本篇文章将JAVA基础Ⅱ全面剖析解释,因为JAVA基础非常重要,务必要牢记知识点!!! 1.JAVA基础语法格式 JAVA采用unicode编码 1

Spark性能优化指南——高级篇

Spark性能优化指南--高级篇 [TOC] 前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为<Spark性能优化指南>的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题. 数据倾斜调优 调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜发生时的现象 绝大多数tas

iOS GCD中级篇 - dispatch_group的理解及使用

前文我们讲了GCD基础篇,以及同步.异步,并发.并行几个概率的理解. 参考链接: iOS GCD基础篇 - 同步.异步,并发.并行的理解 现在讲一下dispatch_group的概念以及几种场景下的使用 1.关于dispatch_group 把一组任务提交到队列中,这些队列可以不相关,然后监听这组任务完成的事件. 最常见的几个方法: 1.dispatch_group_create创建一个调度任务组 2.dispatch_group_async 把一个任务异步提交到任务组里 3.dispatch_