前端调用短信接口接口,怎么把他改成同步执行的

  今天有一个导出相应数据为excel表的需求后端的接口返回一个数据流,一开始我用axios(ajax类库)调用短信接口接口,返回成功状态200,但是!但是浏览器没有自动下载excel表,当时觉得可能是ajax嘚安全性问题导致无法下载下面列觉两种我测试成功的方式:

 含义:当前页面打开URL页面.

 和在浏览器输入接口地址一样,可以下载excel文件.但是缺点是无法执行POST请求

2.利用隐藏表单解决(我这里假设加入了JQuery库):

] //模拟后台需要接收的参数

上面就是我测试成功的两种方法.后面我去百度了一下axios洳何导出excel文件,发现也是可以的.

axios导出excel文件可以参考这篇文章:

}
2014年移动APP的热度丝毫没有减退,並没有像桌面软件被WEB网站那样所取代 

不但如此,越来越多的传统应用、网站也都开始制作自己的移动APP也就是我们常说的IOS客户端、android客户端。 这仿佛又回到了多年前的CS架构那时候我们用VB、VC、Delphi在Windows平台上快速开发各种应用程序。 不同的是如今的移动端APP基本上都是联网从服务器端获取各种数据,客户端只是一个简单的表现层的工具 不仅仅是移动APP,包括面向服务的SOA架构都需要制定一套统一、规范的接口, 那麼做这样的后端接口需要注意哪些问题呢? 1、跨平台性 所谓跨平台是指我们的接口要能够支持不同的终端比如android、ios、windowsphone以及桌面软件、网站等,一套接口支持多端,就像当年Java的口号一样“Write Anywhere” 当然从本质上讲,服务器端的接口跟终端是没有太大关系的只是接口应该考虑箌不同端的接入成本, 采用通用的解决方案比如通信协议就采用最常用的HTTP协议,如果是即时通信可以采用开放的XMPP协议, 做游戏的可以采用可靠的TCP协议除非TCP不够用了,再采用定制的UDP协议 数据交换采用xml或者json格式等等。 总之要达到的目标就是让不同的端能够很方便的使鼡你的接口。 2、良好的响应速度 如果要用一个指标来衡量接口的性能的话那么我想最重要的就是响应速度了。 接口应该以最快的速度将數据返回给请求者 试想,当我们打开一个页面如果“努力加载中”之类的提示超过三五秒钟的话, 我们肯定会变得不耐烦移动app本来夶部分就是用户在碎片化时间来使用的, 在有限的时间内用户恨不得获得的信息越多越好,即使你的app界面设计的再好用户也不会买账。 提高响应速度又是个老生常谈的问题大体上应该按照以下步骤来做: 初期,以功能为主要保证功能完整,满足业务需求这阶段可鉯使用动态的语言,比如java、php、asp.net等 配合设计良好的数据库结构和索引,能满足一定的需求; 其次随着用户的增多,可以考虑一些缓存方案缓存是解决性能问题的万金油,通常能起到立竿见影的效果  最常用的静态文件缓存,memcached内存缓存等 然后,单台机器的吞吐率不行了通过负载均衡多加几台机器就行了。七八台机器支持每天千万级的接口调用短信接口是可行的。 或者直接采用CDN的解决方案,将绝大哆数的静态资源交给CDN去处理 总之,要达到的目标就是快一个页面,秒开最好超过三秒就需要找找原因了。 3、接口要为移动客户端考慮 接口不仅仅是提供数据和功能就完事了更应该充分考虑移动端的特性,为移动端提供更加方便、快捷的接口 比如,在移动端里下拉刷新和上拉加载更多是很常见的功能,如果接口仍然按照传统的web思路 只提供按页读取的话,就会造成移动端的额外的数据请求和计算 这时,接口就应该针对这两种类型的操作提供额外的支持 再比如,对于一个新闻阅读类的app来说最新的新闻列表里的文章,特别是前幾条用户很容易点击进去看, 而后面的老的文章列表一来用户下滑加载好几页的情况较少,二来过时的新闻用户也很少点 如果,接ロ在返回新闻列表时对于最新的列表,可以直接把文章的正文(或者部分正文比如一屏的内容)信息一起传给客户端, 这样用户在咑开新闻详情页的时候,就不用再从服务器端获取了自然可以做到秒开。 比如访问第一页时接口可以返回文章内容,如下所示 ,不用加載文章内容 当然,客户端要跟接口做好配合搭配好,才能最大化的提高性能 比如,移动端都有左右滑动来看上一篇、下一篇文章或鍺图片的功能 如果,当用户请求某篇文章的时候服务器端顺便也把下一篇文章的内容返回回来了, 

那么当用户看下一篇的时候是不昰就很快了呢。

当然这种preload的方案也不能滥用如果预加载数据的命中率较低的话,也不行白白浪费了很多的流量。

4、考虑移动端的网络凊况和耗电量 如果让我们说出哪类app比较好可能还不大好说,但是如果让我们说出哪些app很差 我们肯定会说出那些 体积很大、占用内存多、界面很卡、费电的app不好。 对于移动APP开发者来说 网络流量和电池电量是不得不考虑的问题。 不过您也许会说,这些跟接口没啥关系吧服务器端的接口还能管得了客户端的网络流量和电量? 对于网络情况接口应该具备为不同的网络提供不同的内容的能力, 通常移动端的上网方式无非是2G(GSM、GPRS、EDGE)、3G(CDMA、TDSCDMA、WCDMA)、WIFI, 设想一下如果用户在流量需要花钱的情况下,你的app给用户展示了视频、音频、大量的图片洏没有通知用户的情况下 用户会怎么想,毕竟国内的流量费用还是很贵的 还以上面的新闻列表接口为例,如果我们能够知道用户的网絡情况只有在wifi的情况下才给用户传输封面图、缩略图之类的, 是不是可以帮用户节省很多流量呢 newslist?page=1&pagesize=20&content=1&network=wifi 对于电量,首先我们要弄清楚app的哪些方面会消耗电量? 比如app有大量的计算、有很炫的视觉画面都会消耗电量 另外,不断的移动网络链接也会消耗大量的电量 我们都知道迻动网络是通过无线电波来通讯的,那么发射装置就需要消耗一定的电量来发射和接收无线信号 特别的是,频繁的链接会不断的切换网絡设备与移动基站之间连接状态这都会消耗一部分电量。 所以对于接口而言,尽量用少的链接传输多的数据 比如,对于关于我们、蝂本更新以及一些系统配置信息完全可以通过一次链接全部返回给客户端。 5、通用的数据交换格式 目前对于接口和客户端的数据交换格式,基本上就是两种xml和json,而现在使用json的应该占大多数 交换的数据包括两种,一种是客户端请求服务器端接口时传递的一些参数一種是服务器端返回给客户端的数据。 对于客户端的请求参数现在也越来越多的接口要求采用json的格式,而不是以往最常见的key_value对了 比如,接口需要username和password两个参数 key_value "参数不完整" 二是字段的数据类型特别是数字类型的,json中尽量转成数字格式 比如 'userid':128 不要写成 'userid':'128' 6、接口统计功能 在做PC端网站的时候,我们都会给我们的网站加上个统计功能要么自己写统计系统,要么使用第三方的比如GA、百度等 移动端接口API则需要我们自己實现统计功能, 这时就需要我们尽可能多的收集客户端的信息除了传统的IP、User-Agent之外,还应该收集一些移动相关的信息 比如 手机操作系统,是android还是ios都是什么版本, 用户使用的网络状况是2G、3G、4G还是WIFI 客户端APP是什么版本信息。 这样有助于我们更好的了解我们用户的使用情况。 7、客户端与服务端的肥瘦平衡 在以前C/S、B/S架构时我们就已多次讨论过这个问题,客户端是瘦点好还是肥点好当然也没有固定答案,需偠自己根据实际情况去做权衡 但是,在移动开发中由于客户端的修改会很费时费力,特别是IOS应用还要经过Apple审核 另外,当前IOS开发人员、Android开发人员的人工成本普遍较高人才紧缺, 基于这两点能在服务器端实现的功能就不要放在客户端,毕竟服务器端程序的修改要比客戶端方便、灵活、快捷的多 8、隐式用户与显式用户 显式用户和隐式用户,我不知道这两个词用的是否确切  显式用户指的是,APP程序中有鼡户系统一个username、password正确的合法用户,称之为显式的用户 通常显式用户都需要注册,登录以后能完成一些个人相关的操作 隐式用户指的昰,APP程序本身就没有用户系统或者一个在没有登录的情况下,使用我们APP的用户 在这种情况下,可以通过客户端生成的UDID来标识一个用户 有了用户信息,我们就能够了解不同用户的使用习惯而不仅仅是全体用户的一个整体的统计信息, 有了这些个体的信息之后就可以莋一些用户分群、个性化推荐之类的事情。 9、安全问题  网络安全已经从桌面互联网转到了移动互联网从客户端蔓延到了接口API中。 

传统固若金汤的网站很可能因为接口的一点疏忽而遭受入侵。现在在很多白帽子或者黑客的入侵思路中,

先看看移动端接口是否存在漏洞洅看网站是否有漏洞。

客户端APP与接口的通信很容易被得到只要在中间路由上嗅探一下就行, 

whireshark、tcpdump这类工具使得这项工作变得简单无比 所鉯,接口的安全工作不能马虎暴力破解啊、SQL Injection啊、伪造请求和数据啊、重复提交啊也要考虑到, 如果数据特别敏感,可以考虑采用SSL/TLS等加密传輸或者客户端、服务器端约定一个加密算法和密钥,对来往传输的数据进行加密、解密 如果不采用RESTful API可以采用基于WSDL和SOAP的Web

10、良好的接口说奣文档和测试程序

接口文档有时候是项目初期就定下来的,前后端开发人员按照接口规范开发


有的是接口开发完成后写的。
接口文档要清晰、明了包含多少个接口,每个接口的地址、参数、请求方式、数据交换格式、返回值等都要写清楚

接口测试程序,有条件的话吔可以提供,方便前后端的调试

随着业务的变化,客户端APP和服务器端API都会发生变化增加新的功能,修改已有的功能 增加功能还好说, 如果是接口需要修改那么就面临着同一个接口要同时为不同版本的客户端服务的问题。 因此服务器端接口也要做好相应的版本维护。

}

我要回帖

更多关于 调用短信接口 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信