加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

微信小程序http连接访问解决方案

发布时间:2020-12-14 19:31:23 所属栏目:资源 来源:网络整理
导读:HTTP + 加密 + 认证 + 完整性保护 = HTTPS,小程序考虑到信息安全的问题,选用了更为稳定安全的https 来进行信息传递。 HTTPS 协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。 这就导致了许多

HTTP + 加密 + 认证 + 完整性保护 = HTTPS,小程序考虑到信息安全的问题,选用了更为稳定安全的https 来进行信息传递。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

这就导致了许多好用的http? API无法在小程序中被调用。

但是也有解决方案。

1.中继访问

?

中继访问有两种方式,一种需要自己拥有一个云服务和域名。

拥有域名和云服务器

域名完成备案之后下载证书

https指引教程如下------>?

腾讯云上免费部署HTTPS

再讲域名解析到你的云服务器的IP。

这样子你的域名就是https的了,小程序可以访问你的服务器了,现在就开始在云服务上实现访问http API 服务

实际上只需要面向小程序和API Server 做一个双面响应即可。

实现这种功能,显而易见,在服务器上部署一个Web项目是最简单的实现方式:

我们以访问豆瓣图书API 为例:https://api.douban.com/v2/book/isbn/

豆瓣API虽然是https的,但是来自小程序的访问是被禁止的。下面代码同样适用于http 连接

Java代码:

这个是通用代码,无论是访问什么API

  1. package DataService;
  2. IOException;
  3. InputStreamReader;
  4. PrintWriter;
  5. URL;
  6. /*
  7. * QQ:1025584691
  8. public classDouBanBook {
  9. //豆瓣接口实现
  10. {
  11. {
  12. // 打开和URL之间的连接,根据url
  13. // 设置通用的请求属性
  14. "connection""Keep-Alive");
  15. "Content-Type" contentType ==?"application/json":);
  16. setDoOutput(true);
  17. setConnectTimeoutconnTimeout null 180);
  18. conngetOutputStream(),0);">"utf-8"));
  19. out.print// flush输出流的缓冲
  20. // 定义BufferedReader输入流来读取URL的响应,设置utf-8编码
  21. linewhile((line inreadLine())!=)
  22. catchException e)
  23. result }
  24. finally
  25. try
  26. if close}
  27. {
  28. }
  29. IOException ex)
  30. ex();
  31. return result}
  32. }

根据访问不同的API,只需要修改Servlet的写法就可以:

Servlet:


  • * Servlet implementation class doubanbook
  • @WebServlet"/doubanbook" doubanbook extendsHttpServletprotectedvoid doGetHttpServletRequest requestHttpServletResponse response)throws requestsetCharacterEncoding responsesetContentType"text/html;charset=utf-8"setHeader"Access-Control-Allow-Origin""*""Access-Control-Allow-Methods""GET,POST");
  • isbn);
  • json ().toJsonresultWritergetWriter();
  • }
  • // TODO Auto-generated method stub
  • 同样,你也可以用Python,php等语言来实现中继访问这个功能。

    无域名和云服务器

    对于个人开发者来说,尤其是学生来说,又是是没有条件购买长时间的云服务器的,这个时候我们如果是开发小程序的话,可以用他们提供的空间。

    使用微信小程序的云开发能力,Node.js 函数,用js 实现服务端的响应,访问非https API。

    参照写法一:

    云函数调用方式访问API

      

    ?

    不知道什么原因,云函数我感觉并不是很稳定,建议有条件的还是用自己的服务器来实现吧。

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    • 推荐文章
        热点阅读