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

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

  1. TGL站长关于常见问题的回复

    问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  4. [ 高并发]Java高并发编程系列第二篇--线程同步

    高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...

  5. [高并发]Java高并发编程系列开山篇--线程实现

    Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发. 引用 多线程比多任务更加有挑战.多线程是在同一个程序内部并行执行,因此会对相 ...

  6. 操作系统篇-调用门与特权级(CPL、DPL和RPL)

    || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在前两篇文章(<操作系统篇-浅谈实模式与保护模式>和<操作系统篇-分段机制与GDT|LDT>)中,我们提到 ...

  7. 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇

    什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...

  8. javascript动画系列第三篇——碰撞检测

    前面的话 前面分别介绍了拖拽模拟和磁性吸附,当可视区域内存在多个可拖拽元素,就出现碰撞检测的问题,这也是javascript动画的一个经典问题.本篇将详细介绍碰撞检测 原理介绍 碰撞检测的方法有很多, ...

  9. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  10. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

随机推荐

  1. python-gzip解压缩(实验吧SOS)

    本题看着很简单,就是在弄出来的老是乱码,看了pcat的wp还是不行,下面的评论说可能是python版本问题,改版本太麻烦,试了一下先gzip解压,得到的文件在打开就不是乱码了,代码如下: # -*- ...

  2. codeforces 691F(组合数计算)

    Couple Cover, a wildly popular luck-based game, is about to begin! Two players must work together to ...

  3. 洛谷 P1065 作业调度方案

    P1065 作业调度方案 题目描述 我们现在要利用 mm 台机器加工 nn 个工件,每个工件都有 mm 道工序,每道工序都在不同的指定的机器上完成.每个工件的每道工序都有指定的加工时间. 每个工件的每 ...

  4. 英特尔固态盘 说明书PDF

    http://www.intel.cn/content/www/cn/zh/solid-state-drives/solid-state-drives-ssd.html

  5. mysql建表语句key的含义

    CREATE TABLE `admin_role` (  `adminSet_id` varchar(32) NOT NULL,  `roleSet_id` varchar(32) NOT NULL, ...

  6. 手把手教你开发Chrome扩展三:关于本地存储数据

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...

  7. 【nginx】nginx与apache的优缺点比较

    参考: http://zyan.cc/nginx_php_v6/ nginx相对于apache的优点: 1.轻量级,同样的web 服务,比apache服务器占用更少的内存及资源 2.抗并发,nginx ...

  8. Cocos2d-x v3.1.1 创建以及编译项目

    1.安装python, 并将安装路径增加系统环境变量中; 2. 执行cocos2d-x根文件夹下的setup.py; 3. 进入cmd, 输入: cocos new 项目名称 -p 包名 -l 语言类 ...

  9. Android Jni Android.mk经常使用语句

    仅仅要涉及JNI开发都涉及到Android.mk编写,它也是一种makefile语言. 以上一篇博客中提供的project为例! <1> : 信息打印 : 既然是一种简易语言那么首先应该知 ...

  10. Linux 内核开发 - 内存管理

    1.1什么是内存管理 内存管理是对计算机内存进行分配和使用的技术.内存管理主要存在于多任务的操作系统中,因为内存资源极其有限.须要在不同的任务之间共享内存,内存管理的存在就是要高效.高速的非配内存,并 ...