HttpHelper请求包基类,支持get请求和POS要求。以促进微通道交互界面的开发,为了准备的人机交互界面,背部。

1、HttpHelper帮助基类

[csharp] view
plain
copy

  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Net;
  7. using System.Net.Security;
  8. namespace Weixin.Utils
  9. {
  10. public class HttpHelper
  11. {
  12. public static string Post(string url, string paramData)
  13. {
  14. return Post(url, paramData, Encoding.UTF8);
  15. }
  16. public static string Post(string url, string paramData, Encoding encoding)
  17. {
  18. string result;
  19. if (url.ToLower().IndexOf("https", System.StringComparison.Ordinal) > -1)
  20. {
  21. ServicePointManager.ServerCertificateValidationCallback =
  22. new RemoteCertificateValidationCallback((sender, certificate, chain, errors) => { return true; });
  23. }
  24. try
  25. {
  26. var wc = new WebClient();
  27. if (string.IsNullOrEmpty(wc.Headers["Content-Type"]))
  28. wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
  29. wc.Encoding = encoding;
  30. result = wc.UploadString(url, "POST", paramData);
  31. }
  32. catch (Exception e)
  33. {
  34. throw;
  35. }
  36. return result;
  37. }
  38. public static string Get(string url)
  39. {
  40. return Get(url, Encoding.UTF8);
  41. }
  42. public static string Get(string url, Encoding encoding)
  43. {
  44. try
  45. {
  46. var wc = new WebClient { Encoding = encoding };
  47. var readStream = wc.OpenRead(url);
  48. using (var sr = new StreamReader(readStream, encoding))
  49. {
  50. var result = sr.ReadToEnd();
  51. return result;
  52. }
  53. }
  54. catch (Exception e)
  55. {
  56. throw e;
  57. }
  58. }
  59. }
  60. }

2、帮助类使用

[csharp] view
plain
copy

  1. var data = "{\"touser\":\"Rich\" },";
  2. data += "{\"msgtype\": \"text\"},";
  3. data += "{\"text\": [{\"content\": \"test\"}]}";
  4. var json = HttpHelper.Post("https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + accessToken, data);
[csharp] view
plain
copy

  1. var result = JsonHelper.Deserialize(json);

本人新浪微博:http://weibo.com/i/1741159542

微信公众号开发系列-Http请求包基类的更多相关文章

  1. 微信公众号开发系列-Http请求封装基类

    HttpHelper请求封装基类,支持get请求和POS请求,方便微信开发接口交互,为后面接口交互做准备. 1.HttpHelper帮助基类 [csharp] view plaincopy using ...

  2. C#微信公众号开发系列教程五(接收事件推送与消息排重)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  3. C#微信公众号开发系列教程四(接收普通消息)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  4. C#微信公众号开发系列教程三(消息体签名及加解密)

    http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C ...

  5. C#微信公众号开发系列教程二(新手接入指南)

    http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...

  6. C#微信公众号开发系列教程六(被动回复与上传下载多媒体文件)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  7. 微信公众号开发系列教程一(调试环境部署续:vs远程调试)

    http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...

  8. 微信公众号开发系列-13、基于RDIFramework.NET框架整合微信开发应用效果展示

    1.前言 通过前面一系列文章的学习,我们对微信公众号开发已经有了一个比较深入和全面的了解. 微信公众号开发为企业解决那些问题呢? 我们经常看到微信公众号定制开发.微信公众平台定制开发,都不知道这些能给 ...

  9. 微信公众号开发系列-获取微信OpenID

    在微信开发时候在做消息接口交互的时候须要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID.接收事件推送方式和网页授权获取用户基本信息方式获取. 1.通过接收被动消息方式获 ...

随机推荐

  1. Java 线程第三版 第九章 Thread调度 读书笔记

    一.Thread调度的概述 import java.util.*; import java.text.*; public class Task implements Runnable { long n ...

  2. 数学之路-python计算实战(7)-机器视觉-图像产生加性零均值高斯噪声

    图像产生加性零均值高斯噪声.在灰度图上加上噪声,加上噪声的方式是每一个点的灰度值加上一个噪声值.噪声值的产生方式为Box-Muller算法生成高斯噪声. 在计算机模拟中,常常须要生成正态分布的数值.最 ...

  3. JavaScript中BOOLEAN类型之三种情景代码举例

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

  4. 使用ionic3快速开发webapp(一)

    Ionic可以让我们使用web技术快速构建接近原生体验的跨平台移动应用. 一.安装ionic 1.需要先安装 Node.js(版本8.x之上): 2.安装cordova 和 ionic: $ npm ...

  5. 【57.14%】【codeforces 722B】Verse Pattern

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  6. Linux基本命令(一)

    目标 熟练使用 Linux常用的命令 ls clear cd pwd mkdir touch rm cp mv tree chmod find grep 重定向 软连接.硬链接 压缩 shutdown ...

  7. 【35.20%】【CF 706D】Vasiliy's Multiset

    time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standa ...

  8. PathRemoveFileSpec 函数的作用:将路径末尾的文件名和反斜杠去掉(与GetModuleFileName配合)

    PathRemoveFileSpec 函数的作用:将路径末尾的文件名和反斜杠去掉. 例如,我们想获取EXE文件自身所在的文件夹,可以这样: #include <stdio.h> #incl ...

  9. 联想笔记本装win7

    http://jingyan.baidu.com/article/7c6fb42862d63a80642c90b8.html http://bbs.thinkworldshop.com.cn/thre ...

  10. [Angular] Difference between ngAfterViewInit and ngAfterContentInit

    Content is what is passed as children. View is the template of the current component. The view is in ...