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. 自定义日志工具LogUtil

    package com.pingyijinren.test; import android.util.Log; /** * Created by Administrator on 2016/5/20 ...

  2. 修改phpMyAdmin导入SQL文件的大小限制

    用phpMyAdmin导入mysql数据库时,我的10M的数据库不能导入,提示mysql数据库最大只能导入2M. phpMyAdmin数据库导入出错: You probably tried to up ...

  3. csu - 1538: Shopping (贪心)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1538 很奇妙的一个题,开始没有思路.问了别人才知道. 题目的意思可以理解成上图中,从0点开始向右走 ...

  4. hiho一下 第四十九周 欧拉路

    http://hihocoder.com/contest/hiho49/problem/1 给定无孤立结点图G,若存在一条路,经过图中每边一次且仅一次,该条路称为欧拉路. 一个无向图存在欧拉路当且仅当 ...

  5. HDU——2874 Connections between cities

    Connections between cities Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (J ...

  6. 学习日常笔记<day09>Http协议

    1 Http协议入门 1.1 什么是http协议 http协议: 对浏览器客户端 和  服务器端 之间数据传输的格式规范 1.2 查看http协议的工具 1)使用火狐的firebug插件(右键-> ...

  7. 洛谷 P3137 [USACO16FEB]圆形谷仓Circular Barn_Silver

    P3137 [USACO16FEB]圆形谷仓Circular Barn_Silver 题目描述 Being a fan of contemporary architecture, Farmer Joh ...

  8. echars入门篇

    官网地址:echars. 官方实例:首次使用请点击. 官方文档以及第一次操作实例如下 我们生活中有很多统计图,举例一下,有:柱形图.饼图.折线图等一些可以统计数据的形式. 图有:X轴(横轴),Y轴(纵 ...

  9. 怎样托管你的项目到github上具体教程

    本文将具体介绍怎样托管你的项目到github上 转载请标明出处: http://blog.csdn.net/lxk_1993/article/details/50441442 本文出自:[lxk_19 ...

  10. jquery.validate自己定义验证--成功提示与择要提示

    1. 自己定义验证--成功提示 1) 加入选项 errorClass: "unchecked". validClass: "checked", errorEle ...