原文链接:http://blog.csdn.net/xyang81/article/details/52141881

在做微信开发的时候,调用微信接口成功之后,微信会回调我们事先配置好的一个接口。由于微信的服务是在外网的,所以这个回调接口也只能是外网,而且微信要求回调接口只能是通过ICP备案的域名,不能使用IP。所以在开发调试的时候,需要把代码部署到线上的服务器,通过打log来跟踪接口调用情况,很明显这样开发效率非常低。下面介绍两款工具(natapp和sunny-ngrok)来解决这个问题,将本机的IP和端口映射到外网指定的域名下,通过访问映射的外网域名就可以直接访问到本机的服务。

1、natapp(免费/收费模式)

1> 首先在官网下载natapp客户端

客户端下载
解压后得到一个natapp/natapp.exe执行程序,Linux/Mac 系统 需要 添加执行权限:chmod a+x natapp

2> 运行

打开终端,在命令行中直接运行./natapp即可。运行成功后会进入如下界面:
natapp
从上图中可以看出,转发那行显示了外网域名到本机的端口映射关系。在外网访问http://3c8db5aa.ngrok.natapp.cn就可以将请求转发到本地80端口对应的服务上了。当然你需要在本机装一个监听80端口的web服务,比如:nginx、apache、iis。如果你是用Tomcat等应用服务器,端口也不是80的话,需要在nginx上再做一个反向代理配置,转换到tomcat对应的端口上。

location / {
proxy_pass http://localhost:8080;
}
1
2
3
1
2
3
访问http://127.0.0.1:4040可以监控请求路径、请求头和响应头等日志信息。

通过以上的操作,就完成了外网访问本机服务的工作。

3> 指定映射端口

natapp默认只能映射本机的80端口,如果要映射到指定端口,你需要在natapp官网注册一个帐号,并购买一个免费或收费的隧道,来配置映射到指定的端口上。操作流程如下图所示:
购买隧道
购买免费隧道

将本地端口修改成你需要映射的端口号,点击免费购买后回到我的隧道列表中,复制authtoken列对应的值。

隧道列表

运行:./natapp -authtoken=xxxxxx即可在控制台看到刚刚配置的自定义端口和域名的映射信息。如下图所示:

自定义端口映射
通过http://3c8db5aa.ngrok.natapp.cn/jingtong地址就可以访问到我本机8080端口tomcat部署的应用 jingtong 了。如下图所示:
访问外网域名映射到本地服务效果

但是免费的隧道有几点限制:
1> 域名是natapp随机生成的
2> 每个协议只能购买一个隧道,即每个协议只能映射一个端口
3> 只能映射一条隧道(一个转发域名)(sunny-ngrok可以映射多条隧道)
但也已经够用了,不是吗?

说了这么多,你应该知道怎么调试微信接口了吧? 只需要将natapp随机生成的域名,配置到微信的回调参数配置中即可。因为ngrok.natapp.cn域名是通过了ICP备案的,所以natapp随机生成的三级域名在微信当中都是可以通过验证的。

2、sunny-ngrok(完全免费模式)

sunny-ngrok配置稍微麻烦一点,需要有自己的域名。

1> 在sunny-ngrok注册一个帐号

2> 添加隧道

登录个人中心,新增一条隧道
添加隧道
参数解读:
隧道协议:支持http、https、tcp端口转发
隧道名称:名字随意
http域名类型:选择自定义
域名或远程端口:填写自己的在外网访问的域名
本地地址:本机IP或127.0.0.1
本地端口:本机web服务的端口
http验证用户名和http验证密码:访问域名时用户名密码校验,如果不需要校验可以不填
隧道列表

3> 自定义域名解析到server.ngrok.cc

需要将自定义的域名在域名管理服务商,将自定义域名用CNAME类型解析到server.ngrok.cc,才能提供服务。

4> 发布内网服务到外网

从隧道列表中,拷贝刚刚创建的客户端ID,执行:./sunny clientid 客户端ID1,客户端ID2,多个客户端ID用逗号分隔。效果如下图所示:
这里写图片描述

访问http://weixin.digi-zones.com效果,和natapp访问的效果一致。如下图所示:

这里写图片描述

3、小结

sunny-ngrok:

1> 完全免费
2> 可以定义多条隧道
3> 可以完全自定义域名
4> 需要自己申请域名并备案(算是一个缺点吧)

natapp:

1> 基本免费,高级功能收费(如自定义域名)
2> 免费版每个协议只能申请一条隧道
3> 域名随机生成,不能完全自定义域名。收费版也只能修改域名的前缀
4> 不需要单独申请域名(优点)
5> 运行简单,下载执行程序直接运行即可,默认监听80端口。如果要监听其它端口,没有注册帐号的前提下,需要用web服务器做反向代理


3

0

上一篇Tomcat单机多实例配置
下一篇Linux静态IP配置
我的同类文章
其它(3)
•Maven安装与环境配置(Windows)2016-05-24阅读4054
•Git使用详解2012-10-14阅读1810
•Cocos2d-x 3.0 beta 中加入附加项目,解决无法打开包括文件:“extensions/ExtensionMacros.h”: No such file or directory”2014-08-21阅读1437

参考知识库
img
微信开发知识库
17488关注|707收录
img
.NET知识库
2885关注|815收录
img
Linux知识库
9266关注|3511收录
猜你在找
最涨薪的技能-PHP微信接口开发C#开发微信订阅号、服务号视频教程微信公众号订阅号+服务号开发工具包[微信公众号独立知识点]微信公众平台——客服接口(主动推送)UML建模技术
内网ip映射到外网应用实现发布内网网站等应用ngrok映射本地8080端口到外网自己电脑发布网站到外网实现过程用自己电脑做服务器发布Java项目到外网ubuntu单网卡绑定多IP 解决ubuntu下用局域网时不能连接到外网问题

查看评论
3楼 mking 2016-11-04 01:05发表 [回复]

谢谢,natapp真是太好用了!!
2楼 qq_26904155 2016-10-29 10:41发表 [回复]

无法映射本地8080端口;修改了好几次都不行?这是为啥
Re: xyang0917 2016-10-29 22:49发表 [回复]

回复qq_26904155:本机的8080服务启动了吗? 有没有错误提示信息?
1楼 sinat_29185819 2016-10-20 09:57发表 [回复]

E:\蓝桥程序\natapp>./natapp -authtoken=f84ab98c2b714734
‘.’ 不是内部或外部命令,也不是可运行的程序

咋回事
Re: xyang0917 2016-10-21 09:14发表 [回复]

回复sinat_29185819:把前面的./去掉
Re: sinat_29185819 2016-10-21 09:16发表 [回复]

回复xyang0917:ok 了感谢
发表评论
用 户 名:
xueling022
评论内容:
插入代码

提交
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
个人资料
访问我的空间
xyang0917

1 2
访问:488107次
积分:6100
等级:
排名:第3226名
原创:102篇转载:18篇译文:0篇评论:323条
博客专栏
JNI/NDK开发指南
文章:14篇
阅读:103122
文章搜索

搜索
文章分类
C(10)
C++(2)
Android(13)
JavaSE(26)
JavaEE(11)
JNI/NDK(14)
Web开发(5)
研发管理(0)
IOS(1)
Linux(8)
数据库(10)
数据结构与算法(3)
JavaMail(7)
DevOps(2)
nginx(5)
mysql(6)
分布式开发(12)
redis(5)
其它(4)
Zookeeper(4)
文章存档
2016年11月(4)
2016年10月(5)
2016年09月(5)
2016年08月(1)
2016年07月(10)
展开
阅读排行
深入分析Java ClassLoader原理(43937)
短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案(20132)
JavaMail学习笔记(七)、帐号激活与忘记密码 实例(16745)
Android NDK开发Crash错误定位(14055)
如何手工卸载和安装NTKO OFFICE文档控件(12641)
JavaMail学习笔记(四)、使用POP3协议接收并解析电子邮件(全)(11825)
JNI/NDK开发指南(开山篇)(10486)
JNI/NDK开发指南(一)—— JNI开发流程及HelloWorld(10460)
SMSLib开发指南(10380)
JNI/NDK开发指南(六)——C/C++访问Java实例方法和静态方法(10227)
评论排行
JavaMail学习笔记(七)、帐号激活与忘记密码 实例(60)
深入分析Java ClassLoader原理(55)
短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案(28)
JNI/NDK开发指南(开山篇)(24)
SMSLib开发指南(18)
JNI/NDK开发指南(一)—— JNI开发流程及HelloWorld(15)
Android NDK开发Crash错误定位(11)
JNI/NDK开发指南(七)——C/C++访问Java实例变量和静态变量(10)
JNI/NDK开发指南(十)——JNI局部引用、全局引用和弱全局引用(9)
JNI/NDK开发指南(六)——C/C++访问Java实例方法和静态方法(8)
最新评论
Redis集群技术架构
Nex_Chin: 楼主这个redis系列的文章,写的很清晰,对于刚接触的人很收益,感谢!
分布式服务管理框架-Zookeeper安装与配置(单机、集群)
张思思: 写的很细致
FastDFS与Springboot集成
张思思: 谢谢分享
FastDFS分布式文件系统集群安装与配置
张思思: 讲解的很细致
JavaMail学习笔记(四)、使用POP3协议接收并解析电子邮件(全)
懷惗尛時候: 邮件正文:testtest多了后面那一段 为什么会这样
Tomcat配置与优化(内存、并发、管理)
qq_34995461: 写的很好!谢谢了!
十进制转换成二进制、八进制、十六进制的通用方法
赵尽朝: 理解了进制之间转换的规律
深入分析Java ClassLoader原理
赵尽朝: 谢谢楼主详细讲解。
MySQL主主数据同步
赵尽朝: 之前搭过主从,但是没有
分布式服务管理框架-Zookeeper安装与配置(单机、集群)
cmjzzx: 节点的 clientPort 设为 2181,接下来又是192.168.1.200:2888:388…

公司简介|招贤纳士|广告服务|联系方式|版权声明|法律顾问|问题报告|合作伙伴|论坛反馈
网站客服杂志客服微博客服webmaster@csdn.net400-600-2320|北京创新乐知信息技术有限公司 版权所有|江苏知之为计算机有限公司|江苏乐知网络技术有限公司
京 ICP 证 09002463 号|Copyright © 1999-2016, CSDN.NET, All Rights Reserved GongshangLogo

本地如何调试微信接口相关推荐

  1. 本地调试微信接口方法

    调试微信接口,例如调试微信消息收发接口,我们需要提供一个公网访问url,正常情况下,我们需要建立web工程,然后打包,不部署服务器,提供服务器外网访问url.但是想要将自己本地电脑上运行的项目发布到公 ...

  2. 本地服务器访问微信接口,微信开发之如何在本地调试微信接口

    本文将带你了解微信开发如何在本地调试微信接口,希望本文对大家学微信有所帮助. 1.调试微信接口需要有自己的服务器资源 假定已经将程序部署到服务器上,并且能够正确接收微信服务器发送过来的请求 2.记日志 ...

  3. 本地调试微信接口(内网穿透到外网)

    原文链接:http://blog.csdn.net/xyang81/article/details/52141881 在做微信开发的时候,调用微信接口成功之后,微信会回调我们事先配置好的一个接口.由于 ...

  4. 使用ngrok 二 -- 微信公众号笔记---本地调试微信接口

    前言:最近因为某些原因,要进行微信公众号开发,因此开始学习微信公众号开发的相关知识.本篇博文主要是介绍一下本人学习过程中如何进行"本地调试微信端口"? 一.准备资源: 自己的微信公 ...

  5. 微信公众号笔记---本地调试微信接口

    前言:最近因为某些原因,要进行微信公众号开发,因此开始学习微信公众号开发的相关知识.本篇博文主要是介绍一下本人学习过程中如何进行"本地调试微信端口"? 一.准备资源: 自己的微信公 ...

  6. 问题集录--如何本地调试微信接口(未测试)

    要解决微信本地开发,一个关键的问题是能够把本地的IP地址映射到公网上去,从网上找下相关的解决方案,最终借助ngrok很容易解决,访问官网https://ngrok.com/下载ngrok,解压后只有n ...

  7. 本地html调试java接口_solr源码通过idea进行本地调试

    试验环境: solr5.3(和线上保持一致,历史功能,所以版本比较旧) jdk1.8 idea2018版 ant1.9版本 配置ant的环境变量,同java,因为环境比较基础对于开发人员应该比较简单, ...

  8. 微信接口测试号 php代码,模拟测试微信接口暨微信开发试验代码

    要成为微信公众号(订阅号或服务号)的开发者,需要首先验证接口,这个可以在登录微信https://mp.weixin.qq.com后台后设置.但是我嫌麻烦,于是开发个接口类,包含验证函数(还有回复文本信 ...

  9. 如何在本地开发环境调试微信 JS-SDK

    以下篇幅将会描述不同前提下对应的调试策略,当然也有可能不是最优解,望斧正 →_→ 前言 何谓「安全域名限制」? 以微信 JS-SDK 的使用为例,每个公众号被限制最多可设置三个安全域名,且必须能被腾讯 ...

最新文章

  1. 关于ASP.NET 中站点地图sitemap 的使用
  2. 推荐一位零基础转 Python 的大佬
  3. html调用静态json例子
  4. [Swift]LeetCode1013. 将数组分成和相等的三个部分 | Partition Array Into Three Parts With Equal Sum...
  5. 常用T-Code总结
  6. lambda表达式可以用来声明_lambda表达式可以用来创建包含多个表达式的匿名函数...
  7. Chrome 73 稳定版正式发布,macOS 支持暗色主题
  8. python getcwd_Python os.getcwd()方法
  9. 三星固态驱动安装失败_三星950 Pro固态硬盘用U盘装win7失败解决教程
  10. CPM、CPC、CPA、PFP、CPS、CPL、CPR等广告术语是什么意思
  11. android自动对焦代码,Android相机实时自动对焦的完美实现
  12. 3分钟为你的应用添加声波通讯功能
  13. [资讯]同济DI出品 | 绝对是史上最萌的机器人教具!!!
  14. wcf教程-传递数据过大怎么配置?读取 XML 数据时,超出最大字符串内容长度配额 (8192)
  15. 计算风险指标:最大回撤、计算风险收益指标:夏普比率、利用最大回撤和夏普比筛选基金、比较3只股票的夏普指数
  16. 分体式无线蓝牙耳机什么牌子好?分体式蓝牙耳机排行榜
  17. 感悟生活,由一款很火的APP拼多多,想到的
  18. 【Verilog学习笔记】D触发器(门级和行为级)+4位寄存器+一个完整的激励程序
  19. 推荐系统CTR(CVR)预估模型(多任务学习)之ESMM
  20. 如何运用Knald烘焙纹理来快速呈现材质纹理细节!

热门文章

  1. 负数的原码反码和补码
  2. 一夜之间,「AI孙燕姿」火遍全网!
  3. 美国管理会计师协会任命罗斯-波特为首席财务官
  4. linux的readonly option is set的解决【实测成功】
  5. VMAF原理学习笔记
  6. (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  7. Revit 二次开发—获取Revit安装目录
  8. 如何查看电脑是多少位系统?
  9. ⚡【C语言趣味教程】(1) 深入浅出 HelloWorld | 通过 HelloWorld 展开教学 | 头文件详解 | main 函数详解
  10. 理解输出电压纹波和噪声