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
Get 和 Post 使用篇(1)的更多相关文章
- TGL站长关于常见问题的回复
问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- [ 高并发]Java高并发编程系列第二篇--线程同步
高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...
- [高并发]Java高并发编程系列开山篇--线程实现
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发. 引用 多线程比多任务更加有挑战.多线程是在同一个程序内部并行执行,因此会对相 ...
- 操作系统篇-调用门与特权级(CPL、DPL和RPL)
|| 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在前两篇文章(<操作系统篇-浅谈实模式与保护模式>和<操作系统篇-分段机制与GDT|LDT>)中,我们提到 ...
- 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇
什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...
- javascript动画系列第三篇——碰撞检测
前面的话 前面分别介绍了拖拽模拟和磁性吸附,当可视区域内存在多个可拖拽元素,就出现碰撞检测的问题,这也是javascript动画的一个经典问题.本篇将详细介绍碰撞检测 原理介绍 碰撞检测的方法有很多, ...
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
随机推荐
- bzoj 2653 middle (可持久化线段树)
middle Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1981 Solved: 1097[Submit][Status][Discuss] D ...
- DRF:过滤&搜索&排序功能
过滤功能利用的是第三方包 django_filters,搜索和排序利用的是 Django DRF 提供的 filters 示例代码如下: from rest_framework import filt ...
- poj - 3041 Asteroids (二分图最大匹配+匈牙利算法)
http://poj.org/problem?id=3041 在n*n的网格中有K颗小行星,小行星i的位置是(Ri,Ci),现在有一个强有力的武器能够用一发光速将一整行或一整列的小行星轰为灰烬,想要利 ...
- [bzoj2946][Poi2000]公共串_后缀数组_二分
公共串 bzoj-2946 Poi-2000 题目大意:给定$n$个字符串,求他们的最长公共子串. 注释:$1\le n\le 5$,$1\le minlen<maxlen\le 2000$. ...
- Ubuntu 16.04错误:正在读取软件包列表... 有错误! E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/ppa.launchpad.net_t-tujikawa_ppa_ubuntu_dists_xenial_main_i18n_Translatio
错误: 正在读取软件包列表... 有错误! E: Encountered a section with no Package: header E: Problem with MergeList /va ...
- MongoDB小结20 - find【查询条件$size】
size可以获得指定数组长度的文档 db.user.find({"fruit":{"$size":3}},{"_id":0}) { &quo ...
- java读取大文本文件
原文:http://blog.csdn.net/k21325/article/details/53886160 小文件当然可以直接读取所有,然后放到内存中,但是当文件很大的时候,这个方法就行不通了,内 ...
- python 区块链程序
python 区块链程序 学习了:https://mp.weixin.qq.com/s?__biz=MzAxODcyNjEzNQ==&mid=2247484921&idx=1& ...
- ajax请求同步与异步的区别
//同步请求 $.ajax({ type:'post', url:"<c:url value='/device/org/' />"+val, data:{'org ...
- jmeter获取时间_time 函数
原始时间戳13位精确到毫秒:${__time(,)} 时间戳精确到秒10位:${__time(/1000,)} 时间日期到年月日2019-04-21:${__time(yyyy-MM-dd,)} 时间 ...