API接口

API接口

善用接口管理功能排查接口问题

天行数据宇天行 发表了文章 • 0 个评论 • 412 次浏览 • 2020-03-07 23:42 • 来自相关话题

天行数据控制台提供了非常详尽的接口排错功能,其中接口管理菜单中的接口请求日志和接口调用记录查询功能可以分别从协议层和应用层的角度帮助开发者迅速定位问题,还有接口请求点功能,能实时通过采样收集客户端最终用户的地理位置信息,并直接以动画形式标记在全球地图上。
 
一、接口请求日志

登录控制台,分别点击-接口管理 - 接口请求日志,在打开的页面中,可以详细的看到你在请求天行数据接口时的系统记录的客户端请求信息。从左到右分别为:当前的请求IP、下载耗时、INFO、HTTP状态码、数据量字节大小及请求时间。需要注意的是,这里的日志目前只记录了get方式的请求日志。





 
1,请求IP为客户端ip,如果项目是纯前端(包含各类小程序)的项目调用,该IP就是最终用户的IP,由于各运营商共享IP资源,该IP不一定精准。而如果是后端调用,该IP一般为服务器的IP。结合IP白名单功能,你可以灵活控制接口调用权限。(参考文章:天行数据接口增加防盗刷功能)
 
2,下载时间,单位为秒,从平台服务器接收到客户端请求到平台把完整数据返回给你的耗时,你可以结合自己的项目环境,进行一个项目总耗时的优化。
 
3,INFO,INFO列从左到右包含三段信息,第一段为urlParam即省去了api.tianapi.com主机地址后的完整路径URI和GET查询字符串信息。第二段为Referer请求来源,如果你的项目在前端(包含各类小程序),该来源就是发送请求的页面地址。第三列User-Agent请求UA,翻译过来就是用户代理的意思,是一个字符串信息,方便系统识别发起请求的用户代理软件类型、操作系统、软件开发商以及版本号等等相关信息。
 
4,HTTP状态码,其中200表示服务器成功处理了本次请求、301表示请求被重定向到其他地址,404表示请求目标不存在。请注意,HTTP状态码非常之多,大家可以自行搜索了解。这里的状态码是网络协议层的,和天行数据接口返回的API状态码完全无关。(参考文章:天行数据接口增加防盗刷功能)
 
5,数据大小,即接口返回数据的字节大小。单位为B(字节),我们平常所说的KB意思就是千字节、MB就是兆字节,他们之间的进制单位是1024。
 
6,请求时间,该时间为系统接受到客服端请求时的时间。
 
二、接口调用记录
 
登录控制台,分别点击-接口管理 - 接口调用记录。这里的日志记录信息是应用层的,无论哪种方式请求都会记录。你每次向平台发起请求时调用了哪个接口,接口又具体返回了哪些数据给你,在这里都可以查询到。





 
1,查看,点击查看按钮,可以在弹窗中查看接口返回的json数据包。

2,调用接口,你向平台发起请求时,具体调用了哪个接口,点击接口名称可以查看接口文档。

3,调用时间,此处的时间和接口请求日志里的请求时间不同,此处的时间为系统处理完你的客户端请求记录下本次日志时的时间。

4,状态码,请注意这里的状态码是应用层的状态码,是本平台自行设计的,方便开发者排查和定位问题。显示绿色的200,表示平台成功处理完请求后返回了数据到客户端。显示红色的非200代码,表示出现各种错误,具体大家可以参考接口文档的错误代码释义。完成正常的情况,这里和请求日志里的HTTP状态码应该都是200。只要有一方非200,必然存在某个问题。例如这里API状态码是200,请求日志里的相同请求的HTTP状态码是301,说明你的请求存在某个非致命的问题,虽然系统最终也正确处理了请求和返回了数据,但过程中发生了一次重定向跳转,在部分要求严格的环境下可能存在兼容问题。
 
5,Method请求动作,例如GET或者POST等。(参考文章:参考文章:天行数据接口增加防盗刷功能)
 
6,urlParam请求路径,如果是get包含完整路径及查看字符串,如果是post和其他方式,可能只有路径信息URI。(参考文章:参考文章:天行数据接口增加防盗刷功能)
 
7,返回内容,即接口返回给客户端的完整json数据包,超过255字符的部分可能会被丢弃。
 
三、接口实时请求点
 
这里的地图是通过接口请求日志中的请求IP分析并画出的,所以只有纯前端(包含各类小程序)的项目才有意义。黄色的动态圆点,是正在发生请求的客户端位置。例如从下图中可以看出,我的某个项目,最终用户基本都在鸡肚子这块,位于商丘的某个用户,正在发生访问动作。单击该动态圆点,可以以动画形式,迅速定位出具体的位置。





 
灵活运用上面三个功能,可以为你开发项目增添助力,起到事半功倍效果。

  查看全部
天行数据控制台提供了非常详尽的接口排错功能,其中接口管理菜单中的接口请求日志接口调用记录查询功能可以分别从协议层和应用层的角度帮助开发者迅速定位问题,还有接口请求点功能,能实时通过采样收集客户端最终用户的地理位置信息,并直接以动画形式标记在全球地图上。
 
一、接口请求日志

登录控制台,分别点击-接口管理 - 接口请求日志,在打开的页面中,可以详细的看到你在请求天行数据接口时的系统记录的客户端请求信息。从左到右分别为:当前的请求IP、下载耗时、INFO、HTTP状态码、数据量字节大小及请求时间。需要注意的是,这里的日志目前只记录了get方式的请求日志。

66666.png

 
1,请求IP为客户端ip,如果项目是纯前端(包含各类小程序)的项目调用,该IP就是最终用户的IP,由于各运营商共享IP资源,该IP不一定精准。而如果是后端调用,该IP一般为服务器的IP。结合IP白名单功能,你可以灵活控制接口调用权限。(参考文章:天行数据接口增加防盗刷功能
 
2,下载时间,单位为秒,从平台服务器接收到客户端请求到平台把完整数据返回给你的耗时,你可以结合自己的项目环境,进行一个项目总耗时的优化。
 
3,INFO,INFO列从左到右包含三段信息,第一段为urlParam即省去了api.tianapi.com主机地址后的完整路径URI和GET查询字符串信息。第二段为Referer请求来源,如果你的项目在前端(包含各类小程序),该来源就是发送请求的页面地址。第三列User-Agent请求UA,翻译过来就是用户代理的意思,是一个字符串信息,方便系统识别发起请求的用户代理软件类型、操作系统、软件开发商以及版本号等等相关信息。
 
4,HTTP状态码,其中200表示服务器成功处理了本次请求、301表示请求被重定向到其他地址,404表示请求目标不存在。请注意,HTTP状态码非常之多,大家可以自行搜索了解。这里的状态码是网络协议层的,和天行数据接口返回的API状态码完全无关。(参考文章:天行数据接口增加防盗刷功能
 
5,数据大小,即接口返回数据的字节大小。单位为B(字节),我们平常所说的KB意思就是千字节、MB就是兆字节,他们之间的进制单位是1024。
 
6,请求时间,该时间为系统接受到客服端请求时的时间。
 
二、接口调用记录
 
登录控制台,分别点击-接口管理 - 接口调用记录。这里的日志记录信息是应用层的,无论哪种方式请求都会记录。你每次向平台发起请求时调用了哪个接口,接口又具体返回了哪些数据给你,在这里都可以查询到。

8888.png

 
1,查看,点击查看按钮,可以在弹窗中查看接口返回的json数据包。

2,调用接口,你向平台发起请求时,具体调用了哪个接口,点击接口名称可以查看接口文档。

3,调用时间,此处的时间和接口请求日志里的请求时间不同,此处的时间为系统处理完你的客户端请求记录下本次日志时的时间。

4,状态码,请注意这里的状态码是应用层的状态码,是本平台自行设计的,方便开发者排查和定位问题。显示绿色的200,表示平台成功处理完请求后返回了数据到客户端。显示红色的非200代码,表示出现各种错误,具体大家可以参考接口文档的错误代码释义。完成正常的情况,这里和请求日志里的HTTP状态码应该都是200。只要有一方非200,必然存在某个问题。例如这里API状态码是200,请求日志里的相同请求的HTTP状态码是301,说明你的请求存在某个非致命的问题,虽然系统最终也正确处理了请求和返回了数据,但过程中发生了一次重定向跳转,在部分要求严格的环境下可能存在兼容问题。
 
5,Method请求动作,例如GET或者POST等。(参考文章:参考文章:天行数据接口增加防盗刷功能
 
6,urlParam请求路径,如果是get包含完整路径及查看字符串,如果是post和其他方式,可能只有路径信息URI。(参考文章:参考文章:天行数据接口增加防盗刷功能
 
7,返回内容,即接口返回给客户端的完整json数据包,超过255字符的部分可能会被丢弃。
 
三、接口实时请求点
 
这里的地图是通过接口请求日志中的请求IP分析并画出的,所以只有纯前端(包含各类小程序)的项目才有意义。黄色的动态圆点,是正在发生请求的客户端位置。例如从下图中可以看出,我的某个项目,最终用户基本都在鸡肚子这块,位于商丘的某个用户,正在发生访问动作。单击该动态圆点,可以以动画形式,迅速定位出具体的位置。

88888.png

 
灵活运用上面三个功能,可以为你开发项目增添助力,起到事半功倍效果。

 

抗击nCoV,实时疫情播报接口免费上线

天行数据宇天行 发表了文章 • 0 个评论 • 2258 次浏览 • 2020-01-22 17:31 • 来自相关话题

新型冠状病毒2019-nCoV席卷中华大地,向疫情一线的医护工作者致敬!本接口将实时疫情资讯播报、感染案例、地图及其他资讯。以便公众及时了解疫情抗击进展。数据每30分钟更新一次,来源官方可靠。本接口免费,任何用户可申请,不占用申请接口个数。





 
接口文档:https://www.tianapi.com/apiview/169

希望疫情能早日得到有效控制,在此之前,请根据当地卫生部门指示,做好防护措施,尽量避免出入人员密集场所,及时了解相关讯息,不传谣不造谣。 查看全部
新型冠状病毒2019-nCoV席卷中华大地,向疫情一线的医护工作者致敬!本接口将实时疫情资讯播报、感染案例、地图及其他资讯。以便公众及时了解疫情抗击进展。数据每30分钟更新一次,来源官方可靠。本接口免费,任何用户可申请,不占用申请接口个数。

121000.png

 
接口文档:https://www.tianapi.com/apiview/169

希望疫情能早日得到有效控制,在此之前,请根据当地卫生部门指示,做好防护措施,尽量避免出入人员密集场所,及时了解相关讯息,不传谣不造谣。

天行数据接口防盗刷设置

天行数据宇天行 发表了文章 • 0 个评论 • 635 次浏览 • 2019-12-31 10:20 • 来自相关话题

通过纯前端的方式调用接口,无论怎么混淆加密代码,都将不可避免的会暴露接口密钥apikey,导致你的接口被第三方盗用。本功能是通过限制Referer来源的方式在一定程度上拦截第三方请求。Referer解释:
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。
 这里以微信小程序为例:
在天行数据控制台 - 接口管理 - 接口请求日志 - INFO一栏中可以看到请求接口的Referer来源信息




 
通过微信小程序发起网络请求时,默认都会带上固定的Referer信息(如:https://servicewechat.com/{appid}/{version}/page-frame.html)
 
其中{appid}是你的微信小程序ID、{version} 是小程序的版本号,为 0 表示为开发版、体验版以及审核版本,为 devtools 表示为开发者工具,其余为正式版本。
 
在控制台 - 接口管理 - 防盗用设置中填入微信小程序的Referer:





 
即可一定程度上拦截除了自己的微信小程外,其他第三方的恶意请求(返回170错误)。如上图所示,只允许在输入框中的三个来源URL下访问,如果只输入https://www.tianapi.com/demo/robot/,则表示接口只能在https://www.tianapi.com/demo/robot/网页下才能被正常调用。你还可以使用通配符模式,例如https://www.tianapi.com/*,表示在https://www.tianapi.com/域名下任何网页皆可访问。同理,如只需要微信小程序调用接口,则可以设置https://servicewechat.com/*,只需要自己的某个小程序调用接口,则可以设置https://servicewechat.com/{appid}*
 
需要注意的是:
一旦你设置了Referer白名单限制,后端调用时,会因为没有携带Referer信息同样会返回170错误,此时,你要么删除Referer白名单限制,要么在你的后端语言中,带上Referer信息。
 
另外,即使设置了Referer白名单限制,如果被第三方猜出了你的Referer白名单所包含的来源链接,对方也可以通过后台代理的方式绕过Referer限制,因此,你需要尽可能的隐藏好你的Referer白名单信息和接口密钥apikey。 查看全部
通过纯前端的方式调用接口,无论怎么混淆加密代码,都将不可避免的会暴露接口密钥apikey,导致你的接口被第三方盗用。本功能是通过限制Referer来源的方式在一定程度上拦截第三方请求。
Referer解释:
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

 这里以微信小程序为例:
在天行数据控制台 - 接口管理 - 接口请求日志 - INFO一栏中可以看到请求接口的Referer来源信息
微信截图_20191231101313.png

 
通过微信小程序发起网络请求时,默认都会带上固定的Referer信息(如:https://servicewechat.com/{appid}/{version}/page-frame.html)
 
其中{appid}是你的微信小程序ID、{version} 是小程序的版本号,为 0 表示为开发版、体验版以及审核版本,为 devtools 表示为开发者工具,其余为正式版本。
 
在控制台 - 接口管理 - 防盗用设置中填入微信小程序的Referer:

微信截图_20191231095700.png

 
即可一定程度上拦截除了自己的微信小程外,其他第三方的恶意请求(返回170错误)。如上图所示,只允许在输入框中的三个来源URL下访问,如果只输入https://www.tianapi.com/demo/robot/,则表示接口只能在https://www.tianapi.com/demo/robot/网页下才能被正常调用。你还可以使用通配符模式,例如https://www.tianapi.com/*,表示在https://www.tianapi.com/域名下任何网页皆可访问。同理,如只需要微信小程序调用接口,则可以设置https://servicewechat.com/*,只需要自己的某个小程序调用接口,则可以设置https://servicewechat.com/{appid}*
 
需要注意的是:
一旦你设置了Referer白名单限制,后端调用时,会因为没有携带Referer信息同样会返回170错误,此时,你要么删除Referer白名单限制,要么在你的后端语言中,带上Referer信息。
 
另外,即使设置了Referer白名单限制,如果被第三方猜出了你的Referer白名单所包含的来源链接,对方也可以通过后台代理的方式绕过Referer限制,因此,你需要尽可能的隐藏好你的Referer白名单信息和接口密钥apikey。

API接口怎么调用到网站上

开发帮助宇天行 回复了问题 • 2 人关注 • 1 个回复 • 580 次浏览 • 2019-11-15 15:53 • 来自相关话题

垃圾分类小程序,支持文字搜索,图像识别等功能,欢迎体验

默认分类迷雾 回复了问题 • 3 人关注 • 2 个回复 • 749 次浏览 • 2019-11-08 11:11 • 来自相关话题

Web接口基础知识:认识HTTP状态码

天行数据宇天行 发表了文章 • 0 个评论 • 368 次浏览 • 2019-08-30 20:28 • 来自相关话题

在前面的几篇文章中都多次提到了HTTP(超文本传输协议),简单说就是客户端与服务端之前相互沟通协作一个规范,所有在WWW(万维网)里传输的网页、图片、视频等等富媒体文件资源他们被用户如何发送给服务端,而服务器端又如何将上述资源返回给用户,都是由这个协议决定的。

而今天要说的HTTP状态码,就是用来表示HTTP协议响应状态的3位数字代码。类似于打电话时对方处在不同状态时的提示声。当我向服务端请求下载一张图片时,如果图片存在,HTTP状态码就是200,不存在就是404。这个状态码合集是由一个叫互联网号码分配局的国际机构来负责维护的。





 
HTTP状态码对于普通互联网用户而言,比较常见大概有十几种。
200(服务端成功返回资源),如上图天行数据服务端成功返回了json数据。
404,表示要请求的资源(网页、图片等等)在服务端不存在。
403(服务端拒绝请求),一般是被请求的资源被设置了权限。
500(内部服务器发生错误),一般是服务端软件有Bug或无法正常工作等。
504(网关超时),在一定的时间内,你向服务端请求的资源迟迟未被处理。

另外,在前面的《Web接口基础知识:GET和POST两种请求方法的区别》提到get请求和post请求的区别,其中有一点是,get请求时的参数是拼接到url链接中的,但url链接的字符长度有一个限制,超出了限制服务端就会返回414 (请求的 URI 过长) 服务器无法处理的错误。特别是在调用图像垃圾分类接口时,如果错误的使用get方式请求,把图片的base64编码数据拼接到了url链接中,服务端就会无法处理,返回414状态码。

所以传递的数据过大时,请务必使用post方式来请求接口。
  查看全部
在前面的几篇文章中都多次提到了HTTP(超文本传输协议),简单说就是客户端与服务端之前相互沟通协作一个规范,所有在WWW(万维网)里传输的网页、图片、视频等等富媒体文件资源他们被用户如何发送给服务端,而服务器端又如何将上述资源返回给用户,都是由这个协议决定的。

而今天要说的HTTP状态码,就是用来表示HTTP协议响应状态的3位数字代码。类似于打电话时对方处在不同状态时的提示声。当我向服务端请求下载一张图片时,如果图片存在,HTTP状态码就是200,不存在就是404。这个状态码合集是由一个叫互联网号码分配局的国际机构来负责维护的。

微信截图_20190830201149.png

 
HTTP状态码对于普通互联网用户而言,比较常见大概有十几种。
200(服务端成功返回资源),如上图天行数据服务端成功返回了json数据。
404,表示要请求的资源(网页、图片等等)在服务端不存在。
403(服务端拒绝请求),一般是被请求的资源被设置了权限。
500(内部服务器发生错误),一般是服务端软件有Bug或无法正常工作等。
504(网关超时),在一定的时间内,你向服务端请求的资源迟迟未被处理。

另外,在前面的《Web接口基础知识:GET和POST两种请求方法的区别》提到get请求和post请求的区别,其中有一点是,get请求时的参数是拼接到url链接中的,但url链接的字符长度有一个限制,超出了限制服务端就会返回414 (请求的 URI 过长) 服务器无法处理的错误。特别是在调用图像垃圾分类接口时,如果错误的使用get方式请求,把图片的base64编码数据拼接到了url链接中,服务端就会无法处理,返回414状态码。

所以传递的数据过大时,请务必使用post方式来请求接口。
 

Web接口基础知识:HTTP 协议中URL和URI的区别

天行数据宇天行 发表了文章 • 0 个评论 • 716 次浏览 • 2019-08-13 21:01 • 来自相关话题

前两天的文章都反复提到了HTTP协议,简单来说http是运行在TCP/IP上的超文本传输协议,客户端可能发送给服务器什么样的消息而又应该得到什么样的回应,是由http协议来规定和实现的。





 
今天再来讲一个web接口开发的基本概念,什么是url?什么是uri。其实,在生活中,稍微有点网络常识的同学,经常会接触一个概念url,也很习惯的把他理解成网址链接,例如把这篇文章的url复制一下给我吧。

URL的专业术语叫资源定位符 ,URI叫统一资源标识符。他们之间的关系通过下图可以看出,URL只是URI的一个子集。





 
要理解上面的概念略微有点抽象,二者的区别在于,URI表示请求服务器的路径,定义这么一个资源。而URL同时说明要如何访问这个资源(http://)。

我们继续用唐诗三百首的API链接来说明他的组成关系:





 
 
为了准确描述一组web资源的获取方式,我们把上面的链接分为三个部分,黄色部分是访问它时所用的网络协议(http超文本协议),绿色部分是主机别名和默认的端口号、蓝色部分是路径,褐色部分是默认的index.xx文件,红色部分是查询字符串(query string)。访问后,服务器就会返回一段json文本给用户。

今天我们把互联网上某个具体的资源(一个网页、一张图片)比如成一个人,那么URI就相当于这个人的身份证号码,它标识了这个人不重复的唯一编号,通过身份证号我们就能确定某个唯一的人。

我们再举一个URL的例子,通过描述一个人的具体位置来定位某个唯一的人。

中国邮政编码协议://上海市/嘉定区/XXX小区/3号楼/XX室.XX人

通过上面可以看出,URL同样可以起到了URI的作用(确定一个具体的人),所以URL是URI的子集。

用一段术语总结:URI是以一种抽象的,高层次概念定义统一资源标识,而URL则是具体的资源标识的方式。URL是一种URI。

大家在调用天行数据API接口时,一定要按照接口文档来,api地址中的任何问号?,斜杠/(包括末尾部分)都不要省略。省略地址中的任何符号,那么描述和定位他的方式就发生了变化,导致不能获取资源或者发生其他错误。





 
具体关于URI的概念非常抽象,URI子集除了URL还有URN(统一资源名称),大家感兴趣想详细了解可以网络搜索一下。
  查看全部
前两天的文章都反复提到了HTTP协议,简单来说http是运行在TCP/IP上的超文本传输协议,客户端可能发送给服务器什么样的消息而又应该得到什么样的回应,是由http协议来规定和实现的。

timg.jpg

 
今天再来讲一个web接口开发的基本概念,什么是url?什么是uri。其实,在生活中,稍微有点网络常识的同学,经常会接触一个概念url,也很习惯的把他理解成网址链接,例如把这篇文章的url复制一下给我吧。

URL的专业术语叫资源定位符 ,URI叫统一资源标识符。他们之间的关系通过下图可以看出,URL只是URI的一个子集。

591228-20160116223301225-1866838315.png

 
要理解上面的概念略微有点抽象,二者的区别在于,URI表示请求服务器的路径,定义这么一个资源。而URL同时说明要如何访问这个资源(http://)。

我们继续用唐诗三百首的API链接来说明他的组成关系:

88.png

 
 
为了准确描述一组web资源的获取方式,我们把上面的链接分为三个部分,黄色部分是访问它时所用的网络协议(http超文本协议),绿色部分是主机别名和默认的端口号、蓝色部分是路径,褐色部分是默认的index.xx文件,红色部分是查询字符串(query string)。访问后,服务器就会返回一段json文本给用户。

今天我们把互联网上某个具体的资源(一个网页、一张图片)比如成一个人,那么URI就相当于这个人的身份证号码,它标识了这个人不重复的唯一编号,通过身份证号我们就能确定某个唯一的人。

我们再举一个URL的例子,通过描述一个人的具体位置来定位某个唯一的人。

中国邮政编码协议://上海市/嘉定区/XXX小区/3号楼/XX室.XX人

通过上面可以看出,URL同样可以起到了URI的作用(确定一个具体的人),所以URL是URI的子集。

用一段术语总结:URI是以一种抽象的,高层次概念定义统一资源标识,而URL则是具体的资源标识的方式。URL是一种URI。

大家在调用天行数据API接口时,一定要按照接口文档来,api地址中的任何问号?,斜杠/(包括末尾部分)都不要省略。省略地址中的任何符号,那么描述和定位他的方式就发生了变化,导致不能获取资源或者发生其他错误。

66.png

 
具体关于URI的概念非常抽象,URI子集除了URL还有URN(统一资源名称),大家感兴趣想详细了解可以网络搜索一下。
 

Web接口基础知识:http和https这两种协议的区别

开发帮助宇天行 发表了文章 • 0 个评论 • 566 次浏览 • 2019-08-12 17:41 • 来自相关话题

昨天的文章(Web接口基础知识:GET和POST两种请求方法的区别)介绍了调用接口时get和post这两种常见请求方式的区别,post方式能传递的数据量远比get方式大得多,而且相对get方式也比较隐蔽。





 
今天我们继续把互联网比喻为信息高速公路,用尽量简单的方式,带大家了解下加密超文本协议(https)的独到之处。

通过昨天的文章,我们了解到,get就像公路上的拖拉机,是敞开式车厢,车里运载的什么货物,公路两边的人一清二楚。post相当于一辆全封闭式车厢的卡车,除非是打开车厢门,否则谁也不知道里面装了什么货物。无论是GET(拖拉机)还是POST(卡车)都是HTTP请求的其中两种基本方法(公路上的两种运输车型)。





 
但即使是POST(卡车)的封闭性看起来比较好,也只能防君子不防小人。在互联网的信息高速公路上,经过一些服务区的时候,总有一些不良商贩,一趁你不注意,就直接打开车厢往里塞点小广告,带点私货。更糟心的是,这条路上,还有着数不清的觊觎车厢货物的车匪路霸,他们拦路抢劫,无恶不作。要么偷梁换柱以假乱真,要么就直接劫走货物占为己有,手段各式各样,无所不用其极。





 
在以前,运载的货物都是一些吃喝拉撒的日常用品,在车厢上加把防盗锁又麻烦又挺不经济的,也就睁只眼闭只眼骂骂咧咧一阵过去了。后来,数字经济时代来了,运载的货物就不再是白菜萝卜了,偶尔还干点运钞拉金条之类的活儿,这要是被偷梁换柱了或者直接劫走了,损失可就大了。

因此,这些运输公司聚在一块一合计,不行,车厢门还是必须得加把高强度的数字密码智能锁,密码只给收发双方才放心。但就算这样还是防不了人家直接把整个车劫走,因此又合计一下,还是得再修一条专用的443通道,和普通货车走的80通道彻底分开比较靠谱,从头到尾都要避免货物被劫持。

到这里,大家就明白了,HTTPS与HTTP的区别是,HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版(443通道),在HTTP下加入SSL层(数字密码锁),HTTPS的安全基础是SSL(密文),因此想知道加密的详细内容(运载的货物)就必须要知道SSL才行。





 
而负责发放ssl证书的叫CA机构,主要有DigiCert、Symantec、GeoTrust等等。例如天行数据API接口域名的证书就是DigiCert颁发的。有效期为一年,差不多还有2个月就要到期了,到期后需要重新付费和部署。根据不同的证书机构和种类,价格从几百到几万/年都有。






前几年,以谷歌、苹果等为首的几大互联网巨头发起了一个倡议,建议所有的互联网服务提供商,网站管理员等,都应该逐渐过渡到https加密协议,以避免用户的敏感信息被窃取盗用或者被劫持网络注入广告等。

现在我们在浏览互联网时,可以看到很多网站的的网址前面都加上了绿色的https,表示你访问的这个网站是安全加密的,发送给这个网站的任何信息,都不会被第三方窃取。





 
天行数据的Web接口,同时支持http和https协议。但因为https协议存在一个加密解密的过程,所以速度相对要慢一点,对服务器的负载压力也更大一些。相对而言,天行数据的API接口没什么机密和隐私信息,如无特别需要,还是建议大家优先使用http协议。具体如何取舍,大家根据实际项目和平台要求而定。





 
关于https的具体实现过程同样建议大家网络搜索了解,篇幅有限,这里就不具体展开了。 查看全部
昨天的文章(Web接口基础知识:GET和POST两种请求方法的区别)介绍了调用接口时get和post这两种常见请求方式的区别,post方式能传递的数据量远比get方式大得多,而且相对get方式也比较隐蔽。

12230315-d52fc8de111348279b15c8c675b07fae.jpg

 
今天我们继续把互联网比喻为信息高速公路,用尽量简单的方式,带大家了解下加密超文本协议(https)的独到之处。

通过昨天的文章,我们了解到,get就像公路上的拖拉机,是敞开式车厢,车里运载的什么货物,公路两边的人一清二楚。post相当于一辆全封闭式车厢的卡车,除非是打开车厢门,否则谁也不知道里面装了什么货物。无论是GET(拖拉机)还是POST(卡车)都是HTTP请求的其中两种基本方法(公路上的两种运输车型)。

timg.jpg

 
但即使是POST(卡车)的封闭性看起来比较好,也只能防君子不防小人。在互联网的信息高速公路上,经过一些服务区的时候,总有一些不良商贩,一趁你不注意,就直接打开车厢往里塞点小广告,带点私货。更糟心的是,这条路上,还有着数不清的觊觎车厢货物的车匪路霸,他们拦路抢劫,无恶不作。要么偷梁换柱以假乱真,要么就直接劫走货物占为己有,手段各式各样,无所不用其极。

timg_(1).jpg

 
在以前,运载的货物都是一些吃喝拉撒的日常用品,在车厢上加把防盗锁又麻烦又挺不经济的,也就睁只眼闭只眼骂骂咧咧一阵过去了。后来,数字经济时代来了,运载的货物就不再是白菜萝卜了,偶尔还干点运钞拉金条之类的活儿,这要是被偷梁换柱了或者直接劫走了,损失可就大了。

因此,这些运输公司聚在一块一合计,不行,车厢门还是必须得加把高强度的数字密码智能锁,密码只给收发双方才放心。但就算这样还是防不了人家直接把整个车劫走,因此又合计一下,还是得再修一条专用的443通道,和普通货车走的80通道彻底分开比较靠谱,从头到尾都要避免货物被劫持。

到这里,大家就明白了,HTTPS与HTTP的区别是,HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版(443通道),在HTTP下加入SSL层(数字密码锁),HTTPS的安全基础是SSL(密文),因此想知道加密的详细内容(运载的货物)就必须要知道SSL才行。

222.jpg

 
而负责发放ssl证书的叫CA机构,主要有DigiCert、Symantec、GeoTrust等等。例如天行数据API接口域名的证书就是DigiCert颁发的。有效期为一年,差不多还有2个月就要到期了,到期后需要重新付费和部署。根据不同的证书机构和种类,价格从几百到几万/年都有。

99.png


前几年,以谷歌、苹果等为首的几大互联网巨头发起了一个倡议,建议所有的互联网服务提供商,网站管理员等,都应该逐渐过渡到https加密协议,以避免用户的敏感信息被窃取盗用或者被劫持网络注入广告等。

现在我们在浏览互联网时,可以看到很多网站的的网址前面都加上了绿色的https,表示你访问的这个网站是安全加密的,发送给这个网站的任何信息,都不会被第三方窃取。

6.png

 
天行数据的Web接口,同时支持http和https协议。但因为https协议存在一个加密解密的过程,所以速度相对要慢一点,对服务器的负载压力也更大一些。相对而言,天行数据的API接口没什么机密和隐私信息,如无特别需要,还是建议大家优先使用http协议。具体如何取舍,大家根据实际项目和平台要求而定。

7.png

 
关于https的具体实现过程同样建议大家网络搜索了解,篇幅有限,这里就不具体展开了。

Web接口基础知识:GET和POST两种请求方法的区别

开发帮助宇天行 发表了文章 • 0 个评论 • 757 次浏览 • 2019-08-11 21:33 • 来自相关话题

这个问题,如果延展开来,可以写成几万字的Web开发科普文。GET和POST是HTTP请求的两种最常见最常用的基本方法,在我们以前上小学初中的时候,课本上把互联网比喻为信息高速公路。既然是高速公路,就得有交通规则对不对。不然你开拖拉机的、和开大卡车的都在一条路上飙车,很容易堵车是不是。因此信息高速公路的交通规则中,就有一条特别规定了,开拖拉机的和开卡车分别应该走什么车道。开拖拉机的运载的货物相对比较少,也很容易看出来运载的是什么货物,因此建议走get车道,虽然路窄一点但好在过关卡的时候不用下车检查。大卡车运载的货物比较多还比较隐蔽,因此走post车道。

制定这个交通条例的是谁呢?就是我们访问所有网站前面都会加上的那个http(例如http://www.qq.com),它的中文名叫超文本传输协议。

而HTTP的底层又是基于TCP/IP(相当于互联网世界的交通法),中文名叫传输控制协议或者因特网互联协议。所以GET和POST的底层也是TCP/IP,都是TCP链接。GET和POST能做的事情也是一样的,都是公路上的运输工具。你非要给GET加上request body,给POST带上url参数,技术上稍微伪装下也是可以。但问题是,不同的浏览器和服务器都对GET规定了发送和接受上限,一般就是几K到几十K的字节,能传送的数据信息非常有限,只适合一些简单的信息传递。

我们来看两个具体的例子:

图1是一个get请求,他的参数是拼接在url(query string)里的。

如唐诗三百首的API:




它分为3个部分,蓝色部分是URI(注意URI不等于URL)、红色部分是参数、绿色部分是参数值。当你访问这个地址时,就等于告诉了服务器,我的“身份证号”是XXX,我需要你返回3条数据。当你发送访问请求时,浏览器会把http header和data(也就是参数和参数值)一并发送出去,服务器响应http 200 状态码和返回请求内容。





 
图2是一个post请求,它的参数是在request body(请求体)中的,以键值对的形式传递参数。post与get一个很重要的区别是,post请求时浏览器先发送header,服务器响应100 continue,浏览器再发送data(也就是参数和参数值),服务器响应 http 200 状态码和返回请求内容。

唐诗三百首:http://api.tianapi.com/txapi/poetries/{
"key": "XXX",
"num": "3"
}




 
所以对于像唐诗三百首这样的接口,数据传递非常简单,用get方式传递数据是比较合适的。但对于像图像垃圾分类接口,其中img参数,需要传递经base64编码后的数据,那就非常大了。一张图片1M大小的图片经过base64编码后,他的实际大小都会>1M,远远超过get方式能传递的数据大小,应该就必须用post的方式传递数据。

天行数据的接口绝大多数只支持get方式请求,在接口文档的请求方式和请求参数中都有标注说明,get的参数位置urlParam,post的参数位置body,对于只支持post方式请求的个别接口,会在文档中额外用红色文本提示。大家在调用接口时,一定要注意查看。当你调用接口时,返回码提示缺少240=>缺少key参数,或者280=>缺少必要的参数,都说明你当前请求方式不对。

另外,上面的举例都只说明了get和post对于传输数据量大小的区别,实际上他们的区别还有非常多,这块大家可以自行网络搜索了解。
  查看全部
这个问题,如果延展开来,可以写成几万字的Web开发科普文。GET和POST是HTTP请求的两种最常见最常用的基本方法,在我们以前上小学初中的时候,课本上把互联网比喻为信息高速公路。既然是高速公路,就得有交通规则对不对。不然你开拖拉机的、和开大卡车的都在一条路上飙车,很容易堵车是不是。因此信息高速公路的交通规则中,就有一条特别规定了,开拖拉机的和开卡车分别应该走什么车道。开拖拉机的运载的货物相对比较少,也很容易看出来运载的是什么货物,因此建议走get车道,虽然路窄一点但好在过关卡的时候不用下车检查。大卡车运载的货物比较多还比较隐蔽,因此走post车道。

制定这个交通条例的是谁呢?就是我们访问所有网站前面都会加上的那个http(例如http://www.qq.com),它的中文名叫超文本传输协议。

而HTTP的底层又是基于TCP/IP(相当于互联网世界的交通法),中文名叫传输控制协议或者因特网互联协议。所以GET和POST的底层也是TCP/IP,都是TCP链接。GET和POST能做的事情也是一样的,都是公路上的运输工具。你非要给GET加上request body,给POST带上url参数,技术上稍微伪装下也是可以。但问题是,不同的浏览器和服务器都对GET规定了发送和接受上限,一般就是几K到几十K的字节,能传送的数据信息非常有限,只适合一些简单的信息传递。

我们来看两个具体的例子:

图1是一个get请求,他的参数是拼接在url(query string)里的。

如唐诗三百首的API:
3.png

它分为3个部分,蓝色部分是URI(注意URI不等于URL)、红色部分是参数、绿色部分是参数值。当你访问这个地址时,就等于告诉了服务器,我的“身份证号”是XXX,我需要你返回3条数据。当你发送访问请求时,浏览器会把http header和data(也就是参数和参数值)一并发送出去,服务器响应http 200 状态码和返回请求内容。

1.png

 
图2是一个post请求,它的参数是在request body(请求体)中的,以键值对的形式传递参数。post与get一个很重要的区别是,post请求时浏览器先发送header,服务器响应100 continue,浏览器再发送data(也就是参数和参数值),服务器响应 http 200 状态码和返回请求内容。

唐诗三百首:http://api.tianapi.com/txapi/poetries/
{
"key": "XXX",
"num": "3"
}

2.png

 
所以对于像唐诗三百首这样的接口,数据传递非常简单,用get方式传递数据是比较合适的。但对于像图像垃圾分类接口,其中img参数,需要传递经base64编码后的数据,那就非常大了。一张图片1M大小的图片经过base64编码后,他的实际大小都会>1M,远远超过get方式能传递的数据大小,应该就必须用post的方式传递数据。

天行数据的接口绝大多数只支持get方式请求,在接口文档的请求方式和请求参数中都有标注说明,get的参数位置urlParam,post的参数位置body,对于只支持post方式请求的个别接口,会在文档中额外用红色文本提示。大家在调用接口时,一定要注意查看。当你调用接口时,返回码提示缺少240=>缺少key参数,或者280=>缺少必要的参数,都说明你当前请求方式不对。

另外,上面的举例都只说明了get和post对于传输数据量大小的区别,实际上他们的区别还有非常多,这块大家可以自行网络搜索了解。
 

html调用情话api有demo吗

默认分类宇天行 回复了问题 • 2 人关注 • 1 个回复 • 724 次浏览 • 2019-08-07 13:54 • 来自相关话题

html调用api 有demo吗?

开发帮助宇天行 回复了问题 • 2 人关注 • 1 个回复 • 615 次浏览 • 2019-08-07 13:53 • 来自相关话题

天行数据增加垃圾分类热点搜索排行接口

回复

天行数据宇天行 发起了问题 • 1 人关注 • 0 个回复 • 715 次浏览 • 2019-07-31 12:45 • 来自相关话题

成语接龙发现有很大概率把原本是成语的词判断为不是成语

天行数据宇天行 回复了问题 • 2 人关注 • 2 个回复 • 494 次浏览 • 2019-07-24 05:16 • 来自相关话题

新闻资讯详情页时间显示不正常

天行数据宇天行 回复了问题 • 2 人关注 • 1 个回复 • 330 次浏览 • 2019-07-23 13:49 • 来自相关话题

综合新闻l列表的传word字段无效

天行数据宇天行 回复了问题 • 2 人关注 • 2 个回复 • 259 次浏览 • 2019-07-23 10:20 • 来自相关话题

API接口怎么调用到网站上

回复

开发帮助宇天行 回复了问题 • 2 人关注 • 1 个回复 • 580 次浏览 • 2019-11-15 15:53 • 来自相关话题

垃圾分类小程序,支持文字搜索,图像识别等功能,欢迎体验

回复

默认分类迷雾 回复了问题 • 3 人关注 • 2 个回复 • 749 次浏览 • 2019-11-08 11:11 • 来自相关话题

html调用情话api有demo吗

回复

默认分类宇天行 回复了问题 • 2 人关注 • 1 个回复 • 724 次浏览 • 2019-08-07 13:54 • 来自相关话题

html调用api 有demo吗?

回复

开发帮助宇天行 回复了问题 • 2 人关注 • 1 个回复 • 615 次浏览 • 2019-08-07 13:53 • 来自相关话题

天行数据增加垃圾分类热点搜索排行接口

回复

天行数据宇天行 发起了问题 • 1 人关注 • 0 个回复 • 715 次浏览 • 2019-07-31 12:45 • 来自相关话题

成语接龙发现有很大概率把原本是成语的词判断为不是成语

回复

天行数据宇天行 回复了问题 • 2 人关注 • 2 个回复 • 494 次浏览 • 2019-07-24 05:16 • 来自相关话题

新闻资讯详情页时间显示不正常

回复

天行数据宇天行 回复了问题 • 2 人关注 • 1 个回复 • 330 次浏览 • 2019-07-23 13:49 • 来自相关话题

综合新闻l列表的传word字段无效

回复

天行数据宇天行 回复了问题 • 2 人关注 • 2 个回复 • 259 次浏览 • 2019-07-23 10:20 • 来自相关话题

安卓开发怎么调用api

回复

天行数据宇天行 回复了问题 • 2 人关注 • 1 个回复 • 474 次浏览 • 2019-06-08 10:47 • 来自相关话题

API秘钥在哪里可以找到

回复

天行数据宇天行 回复了问题 • 2 人关注 • 1 个回复 • 525 次浏览 • 2019-05-08 21:58 • 来自相关话题

查看全文都不行

回复

天行数据宇天行 回复了问题 • 3 人关注 • 1 个回复 • 613 次浏览 • 2019-04-14 20:09 • 来自相关话题

一些api报错缺少必要参数

回复

天行数据宇天行 回复了问题 • 3 人关注 • 2 个回复 • 4727 次浏览 • 2017-10-31 22:12 • 来自相关话题

新闻资讯API 图片有的显示为"您查看的图片来自网易相册"默认图

回复

天行数据宇天行 回复了问题 • 3 人关注 • 1 个回复 • 845 次浏览 • 2017-10-03 11:08 • 来自相关话题

我想问下有没有关于点歌的api接口

回复

默认分类郭志彬 发起了问题 • 1 人关注 • 0 个回复 • 968 次浏览 • 2017-08-25 20:28 • 来自相关话题

新闻资讯api - 检索关键词word

回复

天行数据ronindong 回复了问题 • 1 人关注 • 1 个回复 • 940 次浏览 • 2017-07-31 17:34 • 来自相关话题

善用接口管理功能排查接口问题

天行数据宇天行 发表了文章 • 0 个评论 • 412 次浏览 • 2020-03-07 23:42 • 来自相关话题

天行数据控制台提供了非常详尽的接口排错功能,其中接口管理菜单中的接口请求日志和接口调用记录查询功能可以分别从协议层和应用层的角度帮助开发者迅速定位问题,还有接口请求点功能,能实时通过采样收集客户端最终用户的地理位置信息,并直接以动画形式标记在全球地图上。
 
一、接口请求日志

登录控制台,分别点击-接口管理 - 接口请求日志,在打开的页面中,可以详细的看到你在请求天行数据接口时的系统记录的客户端请求信息。从左到右分别为:当前的请求IP、下载耗时、INFO、HTTP状态码、数据量字节大小及请求时间。需要注意的是,这里的日志目前只记录了get方式的请求日志。





 
1,请求IP为客户端ip,如果项目是纯前端(包含各类小程序)的项目调用,该IP就是最终用户的IP,由于各运营商共享IP资源,该IP不一定精准。而如果是后端调用,该IP一般为服务器的IP。结合IP白名单功能,你可以灵活控制接口调用权限。(参考文章:天行数据接口增加防盗刷功能)
 
2,下载时间,单位为秒,从平台服务器接收到客户端请求到平台把完整数据返回给你的耗时,你可以结合自己的项目环境,进行一个项目总耗时的优化。
 
3,INFO,INFO列从左到右包含三段信息,第一段为urlParam即省去了api.tianapi.com主机地址后的完整路径URI和GET查询字符串信息。第二段为Referer请求来源,如果你的项目在前端(包含各类小程序),该来源就是发送请求的页面地址。第三列User-Agent请求UA,翻译过来就是用户代理的意思,是一个字符串信息,方便系统识别发起请求的用户代理软件类型、操作系统、软件开发商以及版本号等等相关信息。
 
4,HTTP状态码,其中200表示服务器成功处理了本次请求、301表示请求被重定向到其他地址,404表示请求目标不存在。请注意,HTTP状态码非常之多,大家可以自行搜索了解。这里的状态码是网络协议层的,和天行数据接口返回的API状态码完全无关。(参考文章:天行数据接口增加防盗刷功能)
 
5,数据大小,即接口返回数据的字节大小。单位为B(字节),我们平常所说的KB意思就是千字节、MB就是兆字节,他们之间的进制单位是1024。
 
6,请求时间,该时间为系统接受到客服端请求时的时间。
 
二、接口调用记录
 
登录控制台,分别点击-接口管理 - 接口调用记录。这里的日志记录信息是应用层的,无论哪种方式请求都会记录。你每次向平台发起请求时调用了哪个接口,接口又具体返回了哪些数据给你,在这里都可以查询到。





 
1,查看,点击查看按钮,可以在弹窗中查看接口返回的json数据包。

2,调用接口,你向平台发起请求时,具体调用了哪个接口,点击接口名称可以查看接口文档。

3,调用时间,此处的时间和接口请求日志里的请求时间不同,此处的时间为系统处理完你的客户端请求记录下本次日志时的时间。

4,状态码,请注意这里的状态码是应用层的状态码,是本平台自行设计的,方便开发者排查和定位问题。显示绿色的200,表示平台成功处理完请求后返回了数据到客户端。显示红色的非200代码,表示出现各种错误,具体大家可以参考接口文档的错误代码释义。完成正常的情况,这里和请求日志里的HTTP状态码应该都是200。只要有一方非200,必然存在某个问题。例如这里API状态码是200,请求日志里的相同请求的HTTP状态码是301,说明你的请求存在某个非致命的问题,虽然系统最终也正确处理了请求和返回了数据,但过程中发生了一次重定向跳转,在部分要求严格的环境下可能存在兼容问题。
 
5,Method请求动作,例如GET或者POST等。(参考文章:参考文章:天行数据接口增加防盗刷功能)
 
6,urlParam请求路径,如果是get包含完整路径及查看字符串,如果是post和其他方式,可能只有路径信息URI。(参考文章:参考文章:天行数据接口增加防盗刷功能)
 
7,返回内容,即接口返回给客户端的完整json数据包,超过255字符的部分可能会被丢弃。
 
三、接口实时请求点
 
这里的地图是通过接口请求日志中的请求IP分析并画出的,所以只有纯前端(包含各类小程序)的项目才有意义。黄色的动态圆点,是正在发生请求的客户端位置。例如从下图中可以看出,我的某个项目,最终用户基本都在鸡肚子这块,位于商丘的某个用户,正在发生访问动作。单击该动态圆点,可以以动画形式,迅速定位出具体的位置。





 
灵活运用上面三个功能,可以为你开发项目增添助力,起到事半功倍效果。

  查看全部
天行数据控制台提供了非常详尽的接口排错功能,其中接口管理菜单中的接口请求日志接口调用记录查询功能可以分别从协议层和应用层的角度帮助开发者迅速定位问题,还有接口请求点功能,能实时通过采样收集客户端最终用户的地理位置信息,并直接以动画形式标记在全球地图上。
 
一、接口请求日志

登录控制台,分别点击-接口管理 - 接口请求日志,在打开的页面中,可以详细的看到你在请求天行数据接口时的系统记录的客户端请求信息。从左到右分别为:当前的请求IP、下载耗时、INFO、HTTP状态码、数据量字节大小及请求时间。需要注意的是,这里的日志目前只记录了get方式的请求日志。

66666.png

 
1,请求IP为客户端ip,如果项目是纯前端(包含各类小程序)的项目调用,该IP就是最终用户的IP,由于各运营商共享IP资源,该IP不一定精准。而如果是后端调用,该IP一般为服务器的IP。结合IP白名单功能,你可以灵活控制接口调用权限。(参考文章:天行数据接口增加防盗刷功能
 
2,下载时间,单位为秒,从平台服务器接收到客户端请求到平台把完整数据返回给你的耗时,你可以结合自己的项目环境,进行一个项目总耗时的优化。
 
3,INFO,INFO列从左到右包含三段信息,第一段为urlParam即省去了api.tianapi.com主机地址后的完整路径URI和GET查询字符串信息。第二段为Referer请求来源,如果你的项目在前端(包含各类小程序),该来源就是发送请求的页面地址。第三列User-Agent请求UA,翻译过来就是用户代理的意思,是一个字符串信息,方便系统识别发起请求的用户代理软件类型、操作系统、软件开发商以及版本号等等相关信息。
 
4,HTTP状态码,其中200表示服务器成功处理了本次请求、301表示请求被重定向到其他地址,404表示请求目标不存在。请注意,HTTP状态码非常之多,大家可以自行搜索了解。这里的状态码是网络协议层的,和天行数据接口返回的API状态码完全无关。(参考文章:天行数据接口增加防盗刷功能
 
5,数据大小,即接口返回数据的字节大小。单位为B(字节),我们平常所说的KB意思就是千字节、MB就是兆字节,他们之间的进制单位是1024。
 
6,请求时间,该时间为系统接受到客服端请求时的时间。
 
二、接口调用记录
 
登录控制台,分别点击-接口管理 - 接口调用记录。这里的日志记录信息是应用层的,无论哪种方式请求都会记录。你每次向平台发起请求时调用了哪个接口,接口又具体返回了哪些数据给你,在这里都可以查询到。

8888.png

 
1,查看,点击查看按钮,可以在弹窗中查看接口返回的json数据包。

2,调用接口,你向平台发起请求时,具体调用了哪个接口,点击接口名称可以查看接口文档。

3,调用时间,此处的时间和接口请求日志里的请求时间不同,此处的时间为系统处理完你的客户端请求记录下本次日志时的时间。

4,状态码,请注意这里的状态码是应用层的状态码,是本平台自行设计的,方便开发者排查和定位问题。显示绿色的200,表示平台成功处理完请求后返回了数据到客户端。显示红色的非200代码,表示出现各种错误,具体大家可以参考接口文档的错误代码释义。完成正常的情况,这里和请求日志里的HTTP状态码应该都是200。只要有一方非200,必然存在某个问题。例如这里API状态码是200,请求日志里的相同请求的HTTP状态码是301,说明你的请求存在某个非致命的问题,虽然系统最终也正确处理了请求和返回了数据,但过程中发生了一次重定向跳转,在部分要求严格的环境下可能存在兼容问题。
 
5,Method请求动作,例如GET或者POST等。(参考文章:参考文章:天行数据接口增加防盗刷功能
 
6,urlParam请求路径,如果是get包含完整路径及查看字符串,如果是post和其他方式,可能只有路径信息URI。(参考文章:参考文章:天行数据接口增加防盗刷功能
 
7,返回内容,即接口返回给客户端的完整json数据包,超过255字符的部分可能会被丢弃。
 
三、接口实时请求点
 
这里的地图是通过接口请求日志中的请求IP分析并画出的,所以只有纯前端(包含各类小程序)的项目才有意义。黄色的动态圆点,是正在发生请求的客户端位置。例如从下图中可以看出,我的某个项目,最终用户基本都在鸡肚子这块,位于商丘的某个用户,正在发生访问动作。单击该动态圆点,可以以动画形式,迅速定位出具体的位置。

88888.png

 
灵活运用上面三个功能,可以为你开发项目增添助力,起到事半功倍效果。

 

抗击nCoV,实时疫情播报接口免费上线

天行数据宇天行 发表了文章 • 0 个评论 • 2258 次浏览 • 2020-01-22 17:31 • 来自相关话题

新型冠状病毒2019-nCoV席卷中华大地,向疫情一线的医护工作者致敬!本接口将实时疫情资讯播报、感染案例、地图及其他资讯。以便公众及时了解疫情抗击进展。数据每30分钟更新一次,来源官方可靠。本接口免费,任何用户可申请,不占用申请接口个数。





 
接口文档:https://www.tianapi.com/apiview/169

希望疫情能早日得到有效控制,在此之前,请根据当地卫生部门指示,做好防护措施,尽量避免出入人员密集场所,及时了解相关讯息,不传谣不造谣。 查看全部
新型冠状病毒2019-nCoV席卷中华大地,向疫情一线的医护工作者致敬!本接口将实时疫情资讯播报、感染案例、地图及其他资讯。以便公众及时了解疫情抗击进展。数据每30分钟更新一次,来源官方可靠。本接口免费,任何用户可申请,不占用申请接口个数。

121000.png

 
接口文档:https://www.tianapi.com/apiview/169

希望疫情能早日得到有效控制,在此之前,请根据当地卫生部门指示,做好防护措施,尽量避免出入人员密集场所,及时了解相关讯息,不传谣不造谣。

天行数据接口防盗刷设置

天行数据宇天行 发表了文章 • 0 个评论 • 635 次浏览 • 2019-12-31 10:20 • 来自相关话题

通过纯前端的方式调用接口,无论怎么混淆加密代码,都将不可避免的会暴露接口密钥apikey,导致你的接口被第三方盗用。本功能是通过限制Referer来源的方式在一定程度上拦截第三方请求。Referer解释:
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。
 这里以微信小程序为例:
在天行数据控制台 - 接口管理 - 接口请求日志 - INFO一栏中可以看到请求接口的Referer来源信息




 
通过微信小程序发起网络请求时,默认都会带上固定的Referer信息(如:https://servicewechat.com/{appid}/{version}/page-frame.html)
 
其中{appid}是你的微信小程序ID、{version} 是小程序的版本号,为 0 表示为开发版、体验版以及审核版本,为 devtools 表示为开发者工具,其余为正式版本。
 
在控制台 - 接口管理 - 防盗用设置中填入微信小程序的Referer:





 
即可一定程度上拦截除了自己的微信小程外,其他第三方的恶意请求(返回170错误)。如上图所示,只允许在输入框中的三个来源URL下访问,如果只输入https://www.tianapi.com/demo/robot/,则表示接口只能在https://www.tianapi.com/demo/robot/网页下才能被正常调用。你还可以使用通配符模式,例如https://www.tianapi.com/*,表示在https://www.tianapi.com/域名下任何网页皆可访问。同理,如只需要微信小程序调用接口,则可以设置https://servicewechat.com/*,只需要自己的某个小程序调用接口,则可以设置https://servicewechat.com/{appid}*
 
需要注意的是:
一旦你设置了Referer白名单限制,后端调用时,会因为没有携带Referer信息同样会返回170错误,此时,你要么删除Referer白名单限制,要么在你的后端语言中,带上Referer信息。
 
另外,即使设置了Referer白名单限制,如果被第三方猜出了你的Referer白名单所包含的来源链接,对方也可以通过后台代理的方式绕过Referer限制,因此,你需要尽可能的隐藏好你的Referer白名单信息和接口密钥apikey。 查看全部
通过纯前端的方式调用接口,无论怎么混淆加密代码,都将不可避免的会暴露接口密钥apikey,导致你的接口被第三方盗用。本功能是通过限制Referer来源的方式在一定程度上拦截第三方请求。
Referer解释:
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

 这里以微信小程序为例:
在天行数据控制台 - 接口管理 - 接口请求日志 - INFO一栏中可以看到请求接口的Referer来源信息
微信截图_20191231101313.png

 
通过微信小程序发起网络请求时,默认都会带上固定的Referer信息(如:https://servicewechat.com/{appid}/{version}/page-frame.html)
 
其中{appid}是你的微信小程序ID、{version} 是小程序的版本号,为 0 表示为开发版、体验版以及审核版本,为 devtools 表示为开发者工具,其余为正式版本。
 
在控制台 - 接口管理 - 防盗用设置中填入微信小程序的Referer:

微信截图_20191231095700.png

 
即可一定程度上拦截除了自己的微信小程外,其他第三方的恶意请求(返回170错误)。如上图所示,只允许在输入框中的三个来源URL下访问,如果只输入https://www.tianapi.com/demo/robot/,则表示接口只能在https://www.tianapi.com/demo/robot/网页下才能被正常调用。你还可以使用通配符模式,例如https://www.tianapi.com/*,表示在https://www.tianapi.com/域名下任何网页皆可访问。同理,如只需要微信小程序调用接口,则可以设置https://servicewechat.com/*,只需要自己的某个小程序调用接口,则可以设置https://servicewechat.com/{appid}*
 
需要注意的是:
一旦你设置了Referer白名单限制,后端调用时,会因为没有携带Referer信息同样会返回170错误,此时,你要么删除Referer白名单限制,要么在你的后端语言中,带上Referer信息。
 
另外,即使设置了Referer白名单限制,如果被第三方猜出了你的Referer白名单所包含的来源链接,对方也可以通过后台代理的方式绕过Referer限制,因此,你需要尽可能的隐藏好你的Referer白名单信息和接口密钥apikey。

Web接口基础知识:认识HTTP状态码

天行数据宇天行 发表了文章 • 0 个评论 • 368 次浏览 • 2019-08-30 20:28 • 来自相关话题

在前面的几篇文章中都多次提到了HTTP(超文本传输协议),简单说就是客户端与服务端之前相互沟通协作一个规范,所有在WWW(万维网)里传输的网页、图片、视频等等富媒体文件资源他们被用户如何发送给服务端,而服务器端又如何将上述资源返回给用户,都是由这个协议决定的。

而今天要说的HTTP状态码,就是用来表示HTTP协议响应状态的3位数字代码。类似于打电话时对方处在不同状态时的提示声。当我向服务端请求下载一张图片时,如果图片存在,HTTP状态码就是200,不存在就是404。这个状态码合集是由一个叫互联网号码分配局的国际机构来负责维护的。





 
HTTP状态码对于普通互联网用户而言,比较常见大概有十几种。
200(服务端成功返回资源),如上图天行数据服务端成功返回了json数据。
404,表示要请求的资源(网页、图片等等)在服务端不存在。
403(服务端拒绝请求),一般是被请求的资源被设置了权限。
500(内部服务器发生错误),一般是服务端软件有Bug或无法正常工作等。
504(网关超时),在一定的时间内,你向服务端请求的资源迟迟未被处理。

另外,在前面的《Web接口基础知识:GET和POST两种请求方法的区别》提到get请求和post请求的区别,其中有一点是,get请求时的参数是拼接到url链接中的,但url链接的字符长度有一个限制,超出了限制服务端就会返回414 (请求的 URI 过长) 服务器无法处理的错误。特别是在调用图像垃圾分类接口时,如果错误的使用get方式请求,把图片的base64编码数据拼接到了url链接中,服务端就会无法处理,返回414状态码。

所以传递的数据过大时,请务必使用post方式来请求接口。
  查看全部
在前面的几篇文章中都多次提到了HTTP(超文本传输协议),简单说就是客户端与服务端之前相互沟通协作一个规范,所有在WWW(万维网)里传输的网页、图片、视频等等富媒体文件资源他们被用户如何发送给服务端,而服务器端又如何将上述资源返回给用户,都是由这个协议决定的。

而今天要说的HTTP状态码,就是用来表示HTTP协议响应状态的3位数字代码。类似于打电话时对方处在不同状态时的提示声。当我向服务端请求下载一张图片时,如果图片存在,HTTP状态码就是200,不存在就是404。这个状态码合集是由一个叫互联网号码分配局的国际机构来负责维护的。

微信截图_20190830201149.png

 
HTTP状态码对于普通互联网用户而言,比较常见大概有十几种。
200(服务端成功返回资源),如上图天行数据服务端成功返回了json数据。
404,表示要请求的资源(网页、图片等等)在服务端不存在。
403(服务端拒绝请求),一般是被请求的资源被设置了权限。
500(内部服务器发生错误),一般是服务端软件有Bug或无法正常工作等。
504(网关超时),在一定的时间内,你向服务端请求的资源迟迟未被处理。

另外,在前面的《Web接口基础知识:GET和POST两种请求方法的区别》提到get请求和post请求的区别,其中有一点是,get请求时的参数是拼接到url链接中的,但url链接的字符长度有一个限制,超出了限制服务端就会返回414 (请求的 URI 过长) 服务器无法处理的错误。特别是在调用图像垃圾分类接口时,如果错误的使用get方式请求,把图片的base64编码数据拼接到了url链接中,服务端就会无法处理,返回414状态码。

所以传递的数据过大时,请务必使用post方式来请求接口。
 

Web接口基础知识:HTTP 协议中URL和URI的区别

天行数据宇天行 发表了文章 • 0 个评论 • 716 次浏览 • 2019-08-13 21:01 • 来自相关话题

前两天的文章都反复提到了HTTP协议,简单来说http是运行在TCP/IP上的超文本传输协议,客户端可能发送给服务器什么样的消息而又应该得到什么样的回应,是由http协议来规定和实现的。





 
今天再来讲一个web接口开发的基本概念,什么是url?什么是uri。其实,在生活中,稍微有点网络常识的同学,经常会接触一个概念url,也很习惯的把他理解成网址链接,例如把这篇文章的url复制一下给我吧。

URL的专业术语叫资源定位符 ,URI叫统一资源标识符。他们之间的关系通过下图可以看出,URL只是URI的一个子集。





 
要理解上面的概念略微有点抽象,二者的区别在于,URI表示请求服务器的路径,定义这么一个资源。而URL同时说明要如何访问这个资源(http://)。

我们继续用唐诗三百首的API链接来说明他的组成关系:





 
 
为了准确描述一组web资源的获取方式,我们把上面的链接分为三个部分,黄色部分是访问它时所用的网络协议(http超文本协议),绿色部分是主机别名和默认的端口号、蓝色部分是路径,褐色部分是默认的index.xx文件,红色部分是查询字符串(query string)。访问后,服务器就会返回一段json文本给用户。

今天我们把互联网上某个具体的资源(一个网页、一张图片)比如成一个人,那么URI就相当于这个人的身份证号码,它标识了这个人不重复的唯一编号,通过身份证号我们就能确定某个唯一的人。

我们再举一个URL的例子,通过描述一个人的具体位置来定位某个唯一的人。

中国邮政编码协议://上海市/嘉定区/XXX小区/3号楼/XX室.XX人

通过上面可以看出,URL同样可以起到了URI的作用(确定一个具体的人),所以URL是URI的子集。

用一段术语总结:URI是以一种抽象的,高层次概念定义统一资源标识,而URL则是具体的资源标识的方式。URL是一种URI。

大家在调用天行数据API接口时,一定要按照接口文档来,api地址中的任何问号?,斜杠/(包括末尾部分)都不要省略。省略地址中的任何符号,那么描述和定位他的方式就发生了变化,导致不能获取资源或者发生其他错误。





 
具体关于URI的概念非常抽象,URI子集除了URL还有URN(统一资源名称),大家感兴趣想详细了解可以网络搜索一下。
  查看全部
前两天的文章都反复提到了HTTP协议,简单来说http是运行在TCP/IP上的超文本传输协议,客户端可能发送给服务器什么样的消息而又应该得到什么样的回应,是由http协议来规定和实现的。

timg.jpg

 
今天再来讲一个web接口开发的基本概念,什么是url?什么是uri。其实,在生活中,稍微有点网络常识的同学,经常会接触一个概念url,也很习惯的把他理解成网址链接,例如把这篇文章的url复制一下给我吧。

URL的专业术语叫资源定位符 ,URI叫统一资源标识符。他们之间的关系通过下图可以看出,URL只是URI的一个子集。

591228-20160116223301225-1866838315.png

 
要理解上面的概念略微有点抽象,二者的区别在于,URI表示请求服务器的路径,定义这么一个资源。而URL同时说明要如何访问这个资源(http://)。

我们继续用唐诗三百首的API链接来说明他的组成关系:

88.png

 
 
为了准确描述一组web资源的获取方式,我们把上面的链接分为三个部分,黄色部分是访问它时所用的网络协议(http超文本协议),绿色部分是主机别名和默认的端口号、蓝色部分是路径,褐色部分是默认的index.xx文件,红色部分是查询字符串(query string)。访问后,服务器就会返回一段json文本给用户。

今天我们把互联网上某个具体的资源(一个网页、一张图片)比如成一个人,那么URI就相当于这个人的身份证号码,它标识了这个人不重复的唯一编号,通过身份证号我们就能确定某个唯一的人。

我们再举一个URL的例子,通过描述一个人的具体位置来定位某个唯一的人。

中国邮政编码协议://上海市/嘉定区/XXX小区/3号楼/XX室.XX人

通过上面可以看出,URL同样可以起到了URI的作用(确定一个具体的人),所以URL是URI的子集。

用一段术语总结:URI是以一种抽象的,高层次概念定义统一资源标识,而URL则是具体的资源标识的方式。URL是一种URI。

大家在调用天行数据API接口时,一定要按照接口文档来,api地址中的任何问号?,斜杠/(包括末尾部分)都不要省略。省略地址中的任何符号,那么描述和定位他的方式就发生了变化,导致不能获取资源或者发生其他错误。

66.png

 
具体关于URI的概念非常抽象,URI子集除了URL还有URN(统一资源名称),大家感兴趣想详细了解可以网络搜索一下。
 

Web接口基础知识:http和https这两种协议的区别

开发帮助宇天行 发表了文章 • 0 个评论 • 566 次浏览 • 2019-08-12 17:41 • 来自相关话题

昨天的文章(Web接口基础知识:GET和POST两种请求方法的区别)介绍了调用接口时get和post这两种常见请求方式的区别,post方式能传递的数据量远比get方式大得多,而且相对get方式也比较隐蔽。





 
今天我们继续把互联网比喻为信息高速公路,用尽量简单的方式,带大家了解下加密超文本协议(https)的独到之处。

通过昨天的文章,我们了解到,get就像公路上的拖拉机,是敞开式车厢,车里运载的什么货物,公路两边的人一清二楚。post相当于一辆全封闭式车厢的卡车,除非是打开车厢门,否则谁也不知道里面装了什么货物。无论是GET(拖拉机)还是POST(卡车)都是HTTP请求的其中两种基本方法(公路上的两种运输车型)。





 
但即使是POST(卡车)的封闭性看起来比较好,也只能防君子不防小人。在互联网的信息高速公路上,经过一些服务区的时候,总有一些不良商贩,一趁你不注意,就直接打开车厢往里塞点小广告,带点私货。更糟心的是,这条路上,还有着数不清的觊觎车厢货物的车匪路霸,他们拦路抢劫,无恶不作。要么偷梁换柱以假乱真,要么就直接劫走货物占为己有,手段各式各样,无所不用其极。





 
在以前,运载的货物都是一些吃喝拉撒的日常用品,在车厢上加把防盗锁又麻烦又挺不经济的,也就睁只眼闭只眼骂骂咧咧一阵过去了。后来,数字经济时代来了,运载的货物就不再是白菜萝卜了,偶尔还干点运钞拉金条之类的活儿,这要是被偷梁换柱了或者直接劫走了,损失可就大了。

因此,这些运输公司聚在一块一合计,不行,车厢门还是必须得加把高强度的数字密码智能锁,密码只给收发双方才放心。但就算这样还是防不了人家直接把整个车劫走,因此又合计一下,还是得再修一条专用的443通道,和普通货车走的80通道彻底分开比较靠谱,从头到尾都要避免货物被劫持。

到这里,大家就明白了,HTTPS与HTTP的区别是,HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版(443通道),在HTTP下加入SSL层(数字密码锁),HTTPS的安全基础是SSL(密文),因此想知道加密的详细内容(运载的货物)就必须要知道SSL才行。





 
而负责发放ssl证书的叫CA机构,主要有DigiCert、Symantec、GeoTrust等等。例如天行数据API接口域名的证书就是DigiCert颁发的。有效期为一年,差不多还有2个月就要到期了,到期后需要重新付费和部署。根据不同的证书机构和种类,价格从几百到几万/年都有。






前几年,以谷歌、苹果等为首的几大互联网巨头发起了一个倡议,建议所有的互联网服务提供商,网站管理员等,都应该逐渐过渡到https加密协议,以避免用户的敏感信息被窃取盗用或者被劫持网络注入广告等。

现在我们在浏览互联网时,可以看到很多网站的的网址前面都加上了绿色的https,表示你访问的这个网站是安全加密的,发送给这个网站的任何信息,都不会被第三方窃取。





 
天行数据的Web接口,同时支持http和https协议。但因为https协议存在一个加密解密的过程,所以速度相对要慢一点,对服务器的负载压力也更大一些。相对而言,天行数据的API接口没什么机密和隐私信息,如无特别需要,还是建议大家优先使用http协议。具体如何取舍,大家根据实际项目和平台要求而定。





 
关于https的具体实现过程同样建议大家网络搜索了解,篇幅有限,这里就不具体展开了。 查看全部
昨天的文章(Web接口基础知识:GET和POST两种请求方法的区别)介绍了调用接口时get和post这两种常见请求方式的区别,post方式能传递的数据量远比get方式大得多,而且相对get方式也比较隐蔽。

12230315-d52fc8de111348279b15c8c675b07fae.jpg

 
今天我们继续把互联网比喻为信息高速公路,用尽量简单的方式,带大家了解下加密超文本协议(https)的独到之处。

通过昨天的文章,我们了解到,get就像公路上的拖拉机,是敞开式车厢,车里运载的什么货物,公路两边的人一清二楚。post相当于一辆全封闭式车厢的卡车,除非是打开车厢门,否则谁也不知道里面装了什么货物。无论是GET(拖拉机)还是POST(卡车)都是HTTP请求的其中两种基本方法(公路上的两种运输车型)。

timg.jpg

 
但即使是POST(卡车)的封闭性看起来比较好,也只能防君子不防小人。在互联网的信息高速公路上,经过一些服务区的时候,总有一些不良商贩,一趁你不注意,就直接打开车厢往里塞点小广告,带点私货。更糟心的是,这条路上,还有着数不清的觊觎车厢货物的车匪路霸,他们拦路抢劫,无恶不作。要么偷梁换柱以假乱真,要么就直接劫走货物占为己有,手段各式各样,无所不用其极。

timg_(1).jpg

 
在以前,运载的货物都是一些吃喝拉撒的日常用品,在车厢上加把防盗锁又麻烦又挺不经济的,也就睁只眼闭只眼骂骂咧咧一阵过去了。后来,数字经济时代来了,运载的货物就不再是白菜萝卜了,偶尔还干点运钞拉金条之类的活儿,这要是被偷梁换柱了或者直接劫走了,损失可就大了。

因此,这些运输公司聚在一块一合计,不行,车厢门还是必须得加把高强度的数字密码智能锁,密码只给收发双方才放心。但就算这样还是防不了人家直接把整个车劫走,因此又合计一下,还是得再修一条专用的443通道,和普通货车走的80通道彻底分开比较靠谱,从头到尾都要避免货物被劫持。

到这里,大家就明白了,HTTPS与HTTP的区别是,HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版(443通道),在HTTP下加入SSL层(数字密码锁),HTTPS的安全基础是SSL(密文),因此想知道加密的详细内容(运载的货物)就必须要知道SSL才行。

222.jpg

 
而负责发放ssl证书的叫CA机构,主要有DigiCert、Symantec、GeoTrust等等。例如天行数据API接口域名的证书就是DigiCert颁发的。有效期为一年,差不多还有2个月就要到期了,到期后需要重新付费和部署。根据不同的证书机构和种类,价格从几百到几万/年都有。

99.png


前几年,以谷歌、苹果等为首的几大互联网巨头发起了一个倡议,建议所有的互联网服务提供商,网站管理员等,都应该逐渐过渡到https加密协议,以避免用户的敏感信息被窃取盗用或者被劫持网络注入广告等。

现在我们在浏览互联网时,可以看到很多网站的的网址前面都加上了绿色的https,表示你访问的这个网站是安全加密的,发送给这个网站的任何信息,都不会被第三方窃取。

6.png

 
天行数据的Web接口,同时支持http和https协议。但因为https协议存在一个加密解密的过程,所以速度相对要慢一点,对服务器的负载压力也更大一些。相对而言,天行数据的API接口没什么机密和隐私信息,如无特别需要,还是建议大家优先使用http协议。具体如何取舍,大家根据实际项目和平台要求而定。

7.png

 
关于https的具体实现过程同样建议大家网络搜索了解,篇幅有限,这里就不具体展开了。

Web接口基础知识:GET和POST两种请求方法的区别

开发帮助宇天行 发表了文章 • 0 个评论 • 757 次浏览 • 2019-08-11 21:33 • 来自相关话题

这个问题,如果延展开来,可以写成几万字的Web开发科普文。GET和POST是HTTP请求的两种最常见最常用的基本方法,在我们以前上小学初中的时候,课本上把互联网比喻为信息高速公路。既然是高速公路,就得有交通规则对不对。不然你开拖拉机的、和开大卡车的都在一条路上飙车,很容易堵车是不是。因此信息高速公路的交通规则中,就有一条特别规定了,开拖拉机的和开卡车分别应该走什么车道。开拖拉机的运载的货物相对比较少,也很容易看出来运载的是什么货物,因此建议走get车道,虽然路窄一点但好在过关卡的时候不用下车检查。大卡车运载的货物比较多还比较隐蔽,因此走post车道。

制定这个交通条例的是谁呢?就是我们访问所有网站前面都会加上的那个http(例如http://www.qq.com),它的中文名叫超文本传输协议。

而HTTP的底层又是基于TCP/IP(相当于互联网世界的交通法),中文名叫传输控制协议或者因特网互联协议。所以GET和POST的底层也是TCP/IP,都是TCP链接。GET和POST能做的事情也是一样的,都是公路上的运输工具。你非要给GET加上request body,给POST带上url参数,技术上稍微伪装下也是可以。但问题是,不同的浏览器和服务器都对GET规定了发送和接受上限,一般就是几K到几十K的字节,能传送的数据信息非常有限,只适合一些简单的信息传递。

我们来看两个具体的例子:

图1是一个get请求,他的参数是拼接在url(query string)里的。

如唐诗三百首的API:




它分为3个部分,蓝色部分是URI(注意URI不等于URL)、红色部分是参数、绿色部分是参数值。当你访问这个地址时,就等于告诉了服务器,我的“身份证号”是XXX,我需要你返回3条数据。当你发送访问请求时,浏览器会把http header和data(也就是参数和参数值)一并发送出去,服务器响应http 200 状态码和返回请求内容。





 
图2是一个post请求,它的参数是在request body(请求体)中的,以键值对的形式传递参数。post与get一个很重要的区别是,post请求时浏览器先发送header,服务器响应100 continue,浏览器再发送data(也就是参数和参数值),服务器响应 http 200 状态码和返回请求内容。

唐诗三百首:http://api.tianapi.com/txapi/poetries/{
"key": "XXX",
"num": "3"
}




 
所以对于像唐诗三百首这样的接口,数据传递非常简单,用get方式传递数据是比较合适的。但对于像图像垃圾分类接口,其中img参数,需要传递经base64编码后的数据,那就非常大了。一张图片1M大小的图片经过base64编码后,他的实际大小都会>1M,远远超过get方式能传递的数据大小,应该就必须用post的方式传递数据。

天行数据的接口绝大多数只支持get方式请求,在接口文档的请求方式和请求参数中都有标注说明,get的参数位置urlParam,post的参数位置body,对于只支持post方式请求的个别接口,会在文档中额外用红色文本提示。大家在调用接口时,一定要注意查看。当你调用接口时,返回码提示缺少240=>缺少key参数,或者280=>缺少必要的参数,都说明你当前请求方式不对。

另外,上面的举例都只说明了get和post对于传输数据量大小的区别,实际上他们的区别还有非常多,这块大家可以自行网络搜索了解。
  查看全部
这个问题,如果延展开来,可以写成几万字的Web开发科普文。GET和POST是HTTP请求的两种最常见最常用的基本方法,在我们以前上小学初中的时候,课本上把互联网比喻为信息高速公路。既然是高速公路,就得有交通规则对不对。不然你开拖拉机的、和开大卡车的都在一条路上飙车,很容易堵车是不是。因此信息高速公路的交通规则中,就有一条特别规定了,开拖拉机的和开卡车分别应该走什么车道。开拖拉机的运载的货物相对比较少,也很容易看出来运载的是什么货物,因此建议走get车道,虽然路窄一点但好在过关卡的时候不用下车检查。大卡车运载的货物比较多还比较隐蔽,因此走post车道。

制定这个交通条例的是谁呢?就是我们访问所有网站前面都会加上的那个http(例如http://www.qq.com),它的中文名叫超文本传输协议。

而HTTP的底层又是基于TCP/IP(相当于互联网世界的交通法),中文名叫传输控制协议或者因特网互联协议。所以GET和POST的底层也是TCP/IP,都是TCP链接。GET和POST能做的事情也是一样的,都是公路上的运输工具。你非要给GET加上request body,给POST带上url参数,技术上稍微伪装下也是可以。但问题是,不同的浏览器和服务器都对GET规定了发送和接受上限,一般就是几K到几十K的字节,能传送的数据信息非常有限,只适合一些简单的信息传递。

我们来看两个具体的例子:

图1是一个get请求,他的参数是拼接在url(query string)里的。

如唐诗三百首的API:
3.png

它分为3个部分,蓝色部分是URI(注意URI不等于URL)、红色部分是参数、绿色部分是参数值。当你访问这个地址时,就等于告诉了服务器,我的“身份证号”是XXX,我需要你返回3条数据。当你发送访问请求时,浏览器会把http header和data(也就是参数和参数值)一并发送出去,服务器响应http 200 状态码和返回请求内容。

1.png

 
图2是一个post请求,它的参数是在request body(请求体)中的,以键值对的形式传递参数。post与get一个很重要的区别是,post请求时浏览器先发送header,服务器响应100 continue,浏览器再发送data(也就是参数和参数值),服务器响应 http 200 状态码和返回请求内容。

唐诗三百首:http://api.tianapi.com/txapi/poetries/
{
"key": "XXX",
"num": "3"
}

2.png

 
所以对于像唐诗三百首这样的接口,数据传递非常简单,用get方式传递数据是比较合适的。但对于像图像垃圾分类接口,其中img参数,需要传递经base64编码后的数据,那就非常大了。一张图片1M大小的图片经过base64编码后,他的实际大小都会>1M,远远超过get方式能传递的数据大小,应该就必须用post的方式传递数据。

天行数据的接口绝大多数只支持get方式请求,在接口文档的请求方式和请求参数中都有标注说明,get的参数位置urlParam,post的参数位置body,对于只支持post方式请求的个别接口,会在文档中额外用红色文本提示。大家在调用接口时,一定要注意查看。当你调用接口时,返回码提示缺少240=>缺少key参数,或者280=>缺少必要的参数,都说明你当前请求方式不对。

另外,上面的举例都只说明了get和post对于传输数据量大小的区别,实际上他们的区别还有非常多,这块大家可以自行网络搜索了解。
 

名人名言类型typeid对应的类型名称

开发帮助宇天行 发表了文章 • 0 个评论 • 492 次浏览 • 2019-06-03 22:18 • 来自相关话题

typeid字段对应名称:
 
1——爱情
2——道德
3——青春
4——愿望
5——集体
6——理想
7——志向
8——人才
9——谦虚
10——人格
11——天才
12——青年
13——社会
14——国家
15——财富
16——智慧
17——修养
18——工作
19——妇女
20——儿童
21——思想
22——理智
23——学习
24——科学
25——信仰
26——诚信
27——读书
28——成败
29——奉献
30——劳动
31——节约
32——教育
33——企业
34——事业
35——时间
36——勤奋
37——民族
38——真理
39——友谊
40——自由
41——心理
42——心灵
43——人生
44——幸福
45——团结
  查看全部
typeid字段对应名称:
 
1——爱情
2——道德
3——青春
4——愿望
5——集体
6——理想
7——志向
8——人才
9——谦虚
10——人格
11——天才
12——青年
13——社会
14——国家
15——财富
16——智慧
17——修养
18——工作
19——妇女
20——儿童
21——思想
22——理智
23——学习
24——科学
25——信仰
26——诚信
27——读书
28——成败
29——奉献
30——劳动
31——节约
32——教育
33——企业
34——事业
35——时间
36——勤奋
37——民族
38——真理
39——友谊
40——自由
41——心理
42——心灵
43——人生
44——幸福
45——团结
 

实时股票价格接口返回字段的释义

天行数据宇天行 发表了文章 • 0 个评论 • 451 次浏览 • 2019-05-30 11:51 • 来自相关话题

由于接口返回的是一个列表(newslist),按照数组下标取值(下表中的字段序号)
 




 
由于接口返回的是一个列表(newslist),按照数组下标取值(下表中的字段序号)
 
搜狗截图20190530115017.png

 

如何获取微信公众号标识(biz值)

天行数据宇天行 发表了文章 • 0 个评论 • 2110 次浏览 • 2019-05-14 19:11 • 来自相关话题

天行数据微信最新文章接口可以全网获取某个微信公众号最新文章的永久地址,word参数传递公众号名称或ID均可,但这种方式并非可以获取所有公众号的文章,获取失败的请同时传递biz值,将大大提高成功率。其实这个biz相当于微信公众号的唯一身份标识,有很多种玩法,例如查看某个公众号的二维码,打开历史消息页等,文末有介绍。
 
那么微信公众号的biz值如何获取呢?
 
有二种方式:
 
1,在电脑上,打开该公众号下任意一篇微信文章,鼠标右键(或Ctrl + U)查看网页源代码,搜索var biz或var appuin即可。





 
2,在微信上,打开该公众号关注界面,下拉找到“全部消息”,点击右上角...符号在弹出的菜单中点击复制链接,即可在链接中看到biz值。
 









 
通过上面的方法复制的链接如下(加粗部分MzA4Njg1MjkzOA==即为该公众号的biz值):

mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzA4Njg1MjkzOA==&scene=126&bizpsid=0#wechat_redirect
 
另外的用法举例:

查看历史消息页面
mp.weixin.qq.com/mp/getmasssendmsg?__biz=MzA4Njg1MjkzOA==#wechat_redirect

获取公众号二维码
mp.weixin.qq.com/mp/qrcode?__biz=MzA4Njg1MjkzOA==
 
 
微信最新文章API接口:https://www.tianapi.com/apiview/77
微信临时链接转永久链接及获取biz值接口:https://www.tianapi.com/apiview/89 

  查看全部
天行数据微信最新文章接口可以全网获取某个微信公众号最新文章的永久地址,word参数传递公众号名称或ID均可,但这种方式并非可以获取所有公众号的文章,获取失败的请同时传递biz值,将大大提高成功率。其实这个biz相当于微信公众号的唯一身份标识,有很多种玩法,例如查看某个公众号的二维码,打开历史消息页等,文末有介绍。
 
那么微信公众号的biz值如何获取呢?
 
有二种方式:
 
1,在电脑上,打开该公众号下任意一篇微信文章,鼠标右键(或Ctrl + U)查看网页源代码,搜索var biz或var appuin即可。

微信截图_20190514190238.png

 
2,在微信上,打开该公众号关注界面,下拉找到“全部消息”,点击右上角...符号在弹出的菜单中点击复制链接,即可在链接中看到biz值。
 
微信图片_20190514190651.jpg


微信图片_20190514190657.jpg

 
通过上面的方法复制的链接如下(加粗部分MzA4Njg1MjkzOA==即为该公众号的biz值):

mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzA4Njg1MjkzOA==&scene=126&bizpsid=0#wechat_redirect
 
另外的用法举例:

查看历史消息页面
mp.weixin.qq.com/mp/getmasssendmsg?__biz=MzA4Njg1MjkzOA==#wechat_redirect

获取公众号二维码
mp.weixin.qq.com/mp/qrcode?__biz=MzA4Njg1MjkzOA==
 
 
微信最新文章API接口:https://www.tianapi.com/apiview/77
微信临时链接转永久链接及获取biz值接口:https://www.tianapi.com/apiview/89 

 

星座配对/运势小程序分享

开发帮助宇天行 发表了文章 • 0 个评论 • 1263 次浏览 • 2019-05-12 22:16 • 来自相关话题

上一次,分享土味情话的小程序的制作方法和完整的源代码。这次分享一个星座配对/运势小程序的源代码。具体的文件就不发了,跟上次差不多。直接贴代码,大家复制替换对应的文件即可。
 /** 位置:pages/star/star.js
作者:宇天行 */

var util = require('../../utils/util.js')

Page({
data: {
select_me: false,
select_he: false,
grade_name_me: '选择你的星座',
grade_name_he: '选择对方星座',
grades_me: ['白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手', '魔羯', '水瓶', '双鱼'],//我的下拉列表的数据
grades_he: ['白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手', '魔羯', '水瓶', '双鱼'],//对象下拉列表的数据
index: 0,//选择的下拉列表下标
},
/* 点击下拉框 */
bindShowMsg_me() {
this.setData({
select_me: !this.data.select
})
},
bindShowMsg_he() {
this.setData({
select_he: !this.data.select
})
},
/* 已选下拉框 */

mySelect_me(e) {
var name = e.currentTarget.dataset.name
this.setData({
grade_name_me: name,
select_me: false
})
wx.setStorage({
key: 'xingzuo_me',
data: name
})
},
mySelect_he(e) {
var name = e.currentTarget.dataset.name
var xingzuo_me = wx.getStorageSync('xingzuo_me');
this.setData({
grade_name_he: name,
select_he: false
})
this.onLoad(name, xingzuo_me);
},

onLoad: function (me,he) {
var that = this
//转发分享
wx.showShareMenu({
withShareTicket: true
}),
wx.request({
url: util.TXAPI_BASE_URL + '/txapi/xingzuo/',
data: {
key: util.TXAPI_KEY,
me: me,
he: he
},
success: function (res) {
if(res.data.code == 200){
that.setData({
grade:res.data.newslist[0].grade,
content: res.data.newslist[0].content
})
}
},
fail: function (err) {
console.log(err)
}
})
}
})

/** 位置:pages/star/star.wxml
作者:宇天行 */

<view class="container">
<!-- 你的星座选择 -->
<view class="xingzuo">
<view class='top-selected' bindtap='bindShowMsg_me'>
<text>{{grade_name_me}}</text>
</view>
<!-- 对方星座选择 -->
<view class='top-selected-he' bindtap='bindShowMsg_he'>
<text>{{grade_name_he}}</text>
</view>
</view>

<!-- 下拉框显示列表 -->
<view class="select_box" wx:if="{{select_me}}">
<view wx:for="{{grades_me}}" wx:key="unique">
<view class="select_one" bindtap="mySelect_me" data-name="{{item}}">{{item}}</view>
</view>
</view>

<!-- 对象显示的列表 -->
<view class="select_box_he" wx:if="{{select_he}}">
<view wx:for="{{grades_he}}" wx:key="unique">
<view class="select_one" bindtap="mySelect_he" data-name="{{item}}">{{item}}</view>
</view>
</view>

<view class="neir">
<view class="grade">{{grade}}</view>
<view class="content">{{content}}</view>
</view>
</view>

/** 位置:pages/star/star.wxss
/** 作者:宇天行 */

page{
background: rgb(252, 251, 251);
font-size: 16px;
background:url("背景图片地址") no-repeat 0 0;
background-size: 100% auto;
}
/* 下拉框 */
.top-selected,.top-selected-he{
float: left;
border: 1rpx solid #fff;
padding: 6rpx 20rpx;
margin: 20rpx 6px;
font-size: 30rpx;
border-radius: 4px;
}
.top-selected-he{
float: right;
}
//* 下拉框内容 */
.select_box,.select_box_he {
background-color: #fff;
padding: 0 20rpx;
width: 20%;
float: left;
position: relative;
right: 0;
z-index: 1;
overflow: hidden;
text-align: left;
font-size: 30rpx;
}
.select_box_he {
float: right;
}
.select_one {
padding-left: 10rpx;
width: 100%;
height: 60rpx;
position: relative;
line-height: 60rpx;
}

.xingzuo{
margin-bottom: 0rpx;
}
.neir{
margin-top: 50rpx;

font-size: 24rpx;
padding: 50rpx 30rpx;
}
.grade{
font-size: 28rpx;
padding-bottom: 50rpx;
}效果如下:
















 




 
星座配对API接口地址:https://www.tianapi.com/apiview/42
 
  查看全部
上一次,分享土味情话的小程序的制作方法和完整的源代码。这次分享一个星座配对/运势小程序的源代码。具体的文件就不发了,跟上次差不多。直接贴代码,大家复制替换对应的文件即可。
 
/** 位置:pages/star/star.js 
作者:宇天行 */

var util = require('../../utils/util.js')

Page({
data: {
select_me: false,
select_he: false,
grade_name_me: '选择你的星座',
grade_name_he: '选择对方星座',
grades_me: ['白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手', '魔羯', '水瓶', '双鱼'],//我的下拉列表的数据
grades_he: ['白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手', '魔羯', '水瓶', '双鱼'],//对象下拉列表的数据
index: 0,//选择的下拉列表下标
},
/* 点击下拉框 */
bindShowMsg_me() {
this.setData({
select_me: !this.data.select
})
},
bindShowMsg_he() {
this.setData({
select_he: !this.data.select
})
},
/* 已选下拉框 */

mySelect_me(e) {
var name = e.currentTarget.dataset.name
this.setData({
grade_name_me: name,
select_me: false
})
wx.setStorage({
key: 'xingzuo_me',
data: name
})
},
mySelect_he(e) {
var name = e.currentTarget.dataset.name
var xingzuo_me = wx.getStorageSync('xingzuo_me');
this.setData({
grade_name_he: name,
select_he: false
})
this.onLoad(name, xingzuo_me);
},

onLoad: function (me,he) {
var that = this
//转发分享
wx.showShareMenu({
withShareTicket: true
}),
wx.request({
url: util.TXAPI_BASE_URL + '/txapi/xingzuo/',
data: {
key: util.TXAPI_KEY,
me: me,
he: he
},
success: function (res) {
if(res.data.code == 200){
that.setData({
grade:res.data.newslist[0].grade,
content: res.data.newslist[0].content
})
}
},
fail: function (err) {
console.log(err)
}
})
}
})

/** 位置:pages/star/star.wxml
作者:宇天行 */

<view class="container">
<!-- 你的星座选择 -->
<view class="xingzuo">
<view class='top-selected' bindtap='bindShowMsg_me'>
<text>{{grade_name_me}}</text>
</view>
<!-- 对方星座选择 -->
<view class='top-selected-he' bindtap='bindShowMsg_he'>
<text>{{grade_name_he}}</text>
</view>
</view>

<!-- 下拉框显示列表 -->
<view class="select_box" wx:if="{{select_me}}">
<view wx:for="{{grades_me}}" wx:key="unique">
<view class="select_one" bindtap="mySelect_me" data-name="{{item}}">{{item}}</view>
</view>
</view>

<!-- 对象显示的列表 -->
<view class="select_box_he" wx:if="{{select_he}}">
<view wx:for="{{grades_he}}" wx:key="unique">
<view class="select_one" bindtap="mySelect_he" data-name="{{item}}">{{item}}</view>
</view>
</view>

<view class="neir">
<view class="grade">{{grade}}</view>
<view class="content">{{content}}</view>
</view>
</view>

/** 位置:pages/star/star.wxss
/** 作者:宇天行 */

page{
background: rgb(252, 251, 251);
font-size: 16px;
background:url("背景图片地址") no-repeat 0 0;
background-size: 100% auto;
}
/* 下拉框 */
.top-selected,.top-selected-he{
float: left;
border: 1rpx solid #fff;
padding: 6rpx 20rpx;
margin: 20rpx 6px;
font-size: 30rpx;
border-radius: 4px;
}
.top-selected-he{
float: right;
}
//* 下拉框内容 */
.select_box,.select_box_he {
background-color: #fff;
padding: 0 20rpx;
width: 20%;
float: left;
position: relative;
right: 0;
z-index: 1;
overflow: hidden;
text-align: left;
font-size: 30rpx;
}
.select_box_he {
float: right;
}
.select_one {
padding-left: 10rpx;
width: 100%;
height: 60rpx;
position: relative;
line-height: 60rpx;
}

.xingzuo{
margin-bottom: 0rpx;
}
.neir{
margin-top: 50rpx;

font-size: 24rpx;
padding: 50rpx 30rpx;
}
.grade{
font-size: 28rpx;
padding-bottom: 50rpx;
}
效果如下:


微信图片_20190505192602.jpg


微信图片_20190505192557.jpg


微信图片_20190505192606.jpg

 
wxapp.jpg

 
星座配对API接口地址:https://www.tianapi.com/apiview/42
 
 

甜到爆炸的土味情话小程序分享

天行数据宇天行 发表了文章 • 0 个评论 • 2523 次浏览 • 2019-04-18 21:20 • 来自相关话题

最近网络流行起了甜到腻嘴,撩到心痒的土味情话。网友的智慧是无穷的,我们跟随网红熊的脚步先来感受一波:







以后只能称你为您了,因为你在我心上







现在,你只需要几行代码,就可以直接调用天行数据土味情话接口,在您的小程序、H5、App、微信公众号上使用。


接口地址:https://www.tianapi.com/apiview/80

微信小程序示例如下:











点击阅读原文可下载这个小程序示例代码


除此之外,天行数据近期还上线了一周天气预报、恶意链接检测、星座运势、网络搜索热点、查询某公众号最新发布文章等多个API接口,欢迎使用。

什么是API接口,简单来说,就是节省你的开发成本,不用建立自己的数据库和搜集数据、也不用自行实现数据反馈的相关逻辑,只需要像访问一个网站一样,访问对应数据接口的url地址,就可以获得相应的数据。例如土味情话,天行数据的系统里有几千条相关数据,自行搜集这些数据的成本是相当大的。而又例如人脸识别接口,自行实现这一套逻辑,即使是一个团队,也几乎要花费好几年的时间和精力。但第三方开放接口后,其他用户只需要一个简单的url请求,就可以实现数据的反馈或识别,大大降低了产品的运营成本,实现互联网API化的意义。


天行数据提供了上百个各种有趣的API接口和网页转API等自定义接口的服务,欢迎使用。
  查看全部
最近网络流行起了甜到腻嘴,撩到心痒的土味情话。网友的智慧是无穷的,我们跟随网红熊的脚步先来感受一波:


1.jpg


以后只能称你为您了,因为你在我心上

2.jpg



现在,你只需要几行代码,就可以直接调用天行数据土味情话接口,在您的小程序、H5、App、微信公众号上使用。


接口地址:https://www.tianapi.com/apiview/80

微信小程序示例如下:

微信截图_20190418014250.png


微信截图_20190418014350.png


点击阅读原文可下载这个小程序示例代码


除此之外,天行数据近期还上线了一周天气预报、恶意链接检测、星座运势、网络搜索热点、查询某公众号最新发布文章等多个API接口,欢迎使用。

什么是API接口,简单来说,就是节省你的开发成本,不用建立自己的数据库和搜集数据、也不用自行实现数据反馈的相关逻辑,只需要像访问一个网站一样,访问对应数据接口的url地址,就可以获得相应的数据。例如土味情话,天行数据的系统里有几千条相关数据,自行搜集这些数据的成本是相当大的。而又例如人脸识别接口,自行实现这一套逻辑,即使是一个团队,也几乎要花费好几年的时间和精力。但第三方开放接口后,其他用户只需要一个简单的url请求,就可以实现数据的反馈或识别,大大降低了产品的运营成本,实现互联网API化的意义。


天行数据提供了上百个各种有趣的API接口和网页转API等自定义接口的服务,欢迎使用。
 

关于APIStore停止免费API服务的提示

平台公告宇天行 发表了文章 • 3 个评论 • 1637 次浏览 • 2016-12-17 20:42 • 来自相关话题

2016.12.16百度APIStore发出公告: 

“因公司目前处于战略调整阶段,为保障开发者利益及平台服务质量,APIStore平台将于2017年1月16号关闭所有免费服务接口,届时所有免费服务接口将不可调用。请您提前做好迁移工作。” 











下半年以来,百度APIStore陆续关闭了多个接口服务,包括停止新用户注册、服务商的入驻,后台变更无人审核等,现在百度APIStore基本属于无人看管状态,导致在出现BUG的情况下,本平台无法立即修复而让大家产生误解。因此,本平台将在未来几天内逐渐关闭在APIStore的API服务,请大家尽快迁移到官网调用,谢谢。 





  查看全部
2016.12.16百度APIStore发出公告: 

“因公司目前处于战略调整阶段,为保障开发者利益及平台服务质量,APIStore平台将于2017年1月16号关闭所有免费服务接口,届时所有免费服务接口将不可调用。请您提前做好迁移工作。” 

360反馈意见截图18210320506847.jpg


555.png


下半年以来,百度APIStore陆续关闭了多个接口服务,包括停止新用户注册、服务商的入驻,后台变更无人审核等,现在百度APIStore基本属于无人看管状态,导致在出现BUG的情况下,本平台无法立即修复而让大家产生误解。因此,本平台将在未来几天内逐渐关闭在APIStore的API服务,请大家尽快迁移到官网调用,谢谢。 

999999999999999.png

 

天行数据TianAPI默认支持HTTPS调用

平台公告宇天行 发表了文章 • 0 个评论 • 1667 次浏览 • 2016-12-06 21:56 • 来自相关话题

由于普通的http协议是明文传输,非常容易被破解,篡改等等,因此为了安全加密的需要,各大互联网公司都在逐渐部署HTTPS服务。
HTTPS是以安全为目标的HTTP通道,简单来说是HTTP的安全加密版。通过HTTP下加入SSL层,来达到加密传输的目的,而对于API来说,无论是开发IOS还是微信小程序等,都要求所有的资源或接口调用都是走HTTPS协议的。
因此天行数据决定部署SSL服务,让开发者可以使用HTTPS协议来调用天行数据。
 
目前api.tianapi.com接口域名默认同时支持HTTP/HTTPS访问
 





 





  查看全部
由于普通的http协议是明文传输,非常容易被破解,篡改等等,因此为了安全加密的需要,各大互联网公司都在逐渐部署HTTPS服务。
HTTPS是以安全为目标的HTTP通道,简单来说是HTTP的安全加密版。通过HTTP下加入SSL层,来达到加密传输的目的,而对于API来说,无论是开发IOS还是微信小程序等,都要求所有的资源或接口调用都是走HTTPS协议的。
因此天行数据决定部署SSL服务,让开发者可以使用HTTPS协议来调用天行数据。
 
目前api.tianapi.com接口域名默认同时支持HTTP/HTTPS访问
 

201612271482819162621066.png

 

360反馈意见截图16240210121611.png

 

关于百度apistore的用户调用天行数据出现300209等错误码的原因

天行数据宇天行 发表了文章 • 0 个评论 • 1205 次浏览 • 2016-12-05 15:03 • 来自相关话题

是因为apistore要求服务商API地址的返回码应该是200,而天行数据返回了301码导致的。
由于apistore处于长期不审核和无法看管状态,导致我这边做的一些更改,在apistore没办法同步解决。
天行数据在apistore上接入的api地址(api.huceo.com)已经停用超过半年,现在以HTTP301带参数的方式跳转到新域名(api.tianapi.com)另外,只有api.tianapi.com接口域名支持HTTPS










  查看全部
是因为apistore要求服务商API地址的返回码应该是200,而天行数据返回了301码导致的。
由于apistore处于长期不审核和无法看管状态,导致我这边做的一些更改,在apistore没办法同步解决。
天行数据在apistore上接入的api地址(api.huceo.com)已经停用超过半年,现在以HTTP301带参数的方式跳转到新域名(api.tianapi.com)另外,只有api.tianapi.com接口域名支持HTTPS

360反馈意见截图16540603569050.jpg


360反馈意见截图1765120191109117.jpg

 
有关API接口的问题