http get请求api接口只能在开发环境下用吗

vue-cli 配置的proxyTable代理请求api只能在开发环境下用吗_百度知道
vue-cli 配置的proxyTable代理请求api只能在开发环境下用吗
我有更好的答案
一般都是build之后部署到正式环境吧,对于你说的放到Apache下,实际对于/api/xxx的请求也是针对该Apache Server的。所以你需要给Apache搞一个/api 的rewrite(反向代理)可以参考nginx的配置:location /api/ {proxy_proxy_set_header Host $proxy_set_header X-Real-IP $remote_proxy_set_header X-Forwarded $proxy_add_x_forwarded_proxy_pass }
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。> 博客详情
摘要: 这里纪录如果快速搭建本地API服务器与并利用HTTP实现请求调用,以及出现的一些问题和解决方法。纯属个人总结备忘,同时希望能为入门级的同学提供参考。
在Android开发下,可以实现app对特定API服务器进行接口请求。
现在很多项目都是基于C/S架构,所以在个人开发过程需要搭建类似的开发测试环境。列举一下本次的环境:
开发环境:Window 7 + Eclipse + ADT (假设已搭建好Android开发环境)
Server:Ubuntu 11.10 + Nginx + PHP (运行在虚拟机)
Client::Android 2.3
如下图所示:
温暖提示:
如果虚拟机ping不通,请检测是否在同一个网段,如不是需要修改成桥接模式,并检查防火墙设置。
API服务器搭建
首先是服务器环境,因为要实现API开发,所以这里使用了本人之前自主开发的PHP框架(请参考:),暂时不考虑业务实现,只是利用这个框架在LAMP环境上快速构建一个API接口环境,并实现简单的响应。这里不使用Hello World接口,因为框架有默认的接口。这里配置的服务器域名为:http://dogstar.api.shakenext.com/,请求此域名,默认下会返回:
{"status":"OK","data":"Welcome to use zenphpWS3!","error":"","debug":{"msg":"This is default service!"}}
也可以通过请求此接口,验证服务器是否搭建运行正确。
Android配置HOST
其次是实现对API的调用请求。由于请求的是本地测试环境的域名,所以可以通过配置修改Android上的HOST来保证正确请求。但需要修改Android上的HOST需要ROOT权限,所以请参考ROOT权限获取相关的操作。获取后,可以通过adb来验证,如下即表示root权限获取成功。
E:\&adb&shell
随后将android上的HOSTS保存在本地电脑,使用命令:
adb&pull&/system/etc/hosts&G:/
最好指定保存的路径,以免找不到。
编辑hosts文件,添加API服务器的IP:
127.0.0.1&&&&&&&&&&&&localhost
192.168.0.100&&&&&&&&&&&&dogstar.api.shakenext.com
注意,在配置HOST时,域名最后需要换行,否则会导致域名不能正常解析。
在第一次导入hosts文件到Android系统前,需要修改hosts文件的权限,否则会提示无权限。使用以下命令:
E:\&adb&shell
#chmod&777&/system/etc/hosts
再使用以下命令导入host文件:
adb&push&G:\hosts&/system/etc/hosts
进入Android验证:
$&ping&dogstar.api.shakenext.com
ping&dogstar.api.shakenext.com
PING&dogstar.api.shakenext.com&(192.168.0.100)&56(84)&bytes&of&data.
64&bytes&from&dogstar.api.shakenext.com&(192.168.0.100):&icmp_seq=1&ttl=64&time=1914&ms
64&bytes&from&dogstar.api.shakenext.com&(192.168.0.100):&icmp_seq=2&ttl=64&time=2445&ms
Android接口请求
最后,创建Android应用,并实现接口请求。
打开Eclipse后,File-&New-&Android Application Project-&项目名称-&继续下一步。
创建完成后,为了实现对接口的HTTP请求,这里参考了 ,稍微改动了一下,如下所示:
package&com.dogstar.shakenext.
import&java.io.BufferedR
import&java.io.IOE
import&java.io.InputStreamR
import&java.net.HttpURLC
import&java.net.URL;
public&class&ApiClient&{
&&&&public&static&String&executeHttpGet(String&requestUrl)&{
&&&&&&&&String&result&=&
&&&&&&&&URL&url&=&
&&&&&&&&HttpURLConnection&connection&=&
&&&&&&&&InputStreamReader&in&=&
&&&&&&&&try&{
&&&&&&&&&&&&//url&=&new&URL("http://10.0.2.2:8888/data/get/?token=alexzhou");
&&&&&&&&&&&&url&=&new&URL(requestUrl);
&&&&&&&&&&&&connection&=&(HttpURLConnection)&url.openConnection();
&&&&&&&&&&&&in&=&new&InputStreamReader(connection.getInputStream());
&&&&&&&&&&&&BufferedReader&bufferedReader&=&new&BufferedReader(in);
&&&&&&&&&&&&StringBuffer&strBuffer&=&new&StringBuffer();
&&&&&&&&&&&&String&line&=&
&&&&&&&&&&&&while&((line&=&bufferedReader.readLine())&!=&null)&{
&&&&&&&&&&&&&&&&strBuffer.append(line);
&&&&&&&&&&&&}
&&&&&&&&&&&&result&=&strBuffer.toString();
&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&}&finally&{
&&&&&&&&&&&&if&(connection&!=&null)&{
&&&&&&&&&&&&&&&&connection.disconnect();
&&&&&&&&&&&&}
&&&&&&&&&&&&if&(in&!=&null)&{
&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&in.close();
&&&&&&&&&&&&&&&&}&catch&(IOException&e)&{
&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&return&
将以下调用的代码放置在可运行的位置,如按钮响应,测试一下接口请求。
Log.v("[TRACE]",&"onClick");
String&rs&=&ApiClient.executeHttpGet("http://dogstar.api.shakenext.com/");
Log.v("[TRACE]",&"api&result"&+&rs);
正常运行并响应后,可以LOG看到以下的输出:
06-28&11:43:42.425:&V/[TRACE](4947):&onClick
06-28&11:43:42.755:&V/[TRACE](4947):&api&result{"status":"OK","data":"Welcome&to&use&zenphpWS3!","error":"","debug":{"msg":"This&is&default&service!"}}
如果出现UnknowHostException,请检测是否已在AndroidManifest.xml添加网络权限:
&uses-permission&android:name="android.permission.INTERNET"&&/uses-permission&
至此,搭建完成。Enjoy your coding!
这里只是讲述快速搭建一个需要联网Android应用开发环境,并让其初步运行起来,把整体流程跑通。代码都只是示例性的代码,应该在后期逐渐完善和重构。
参与源创会
领取时间:
“”在线下联结了各位 OSCer,推广开源项目和理念,很荣幸有你的参与~
领取条件:参与过开源中国“源创会”的 OSCer 可以领取
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥什么是api 在程序中怎么调用_百度知道
什么是api 在程序中怎么调用
我有更好的答案
作为一个编程初学者来说,API函数也许是一个时常耳闻却感觉有些神秘的东西。单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。我们这篇API入门教程的目的,就是要把API函数的来龙去脉告诉大家,破除对API函数的畏惧,使它成为我们编程的好助手。 大家可能在许多书上看到过API的英文全称(Application Programming Interface),WIN32 API也就是MicrosoftWindows 32位平台的应用程序编程接口。对这个定义的理解,需要追溯到操作系统的发展历史上,当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。 但是,那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。 这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。 实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。 这也是API函数使用的场合,所以我们对待API函数不必刻来研究每一个函数的用法,那也是不现实的(能用的到的API函数有几千个呢)。正如某位大虾所说:API不要去学,在需要的时候去查API帮助就足够了。
采纳率:35%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。REST在这种环境中是否是必须的?
问题描述之前在做iphone上联网软件的服务器端开发,用的是spring和cxf搭建的rest架构。最近换了个公司,也是开发类似项目,发现公司使用的是struts和struts2-json-plugin,没有使用Convention插件,手机客户端Post数据,服务器返回json数据,用的这种方式实现的通讯。好像也可以满足项目需求。因为是初步接触,不知道这两种方法有什么区别,是否还需要用rest?说白了,还是对rest框架的特点了解不深,汗~~~ps:服务器端提供的服务,基本上就是数据的增删改查,是无状态的。
问题补充:这个方式功能上是满足的,但rest是后发展的,毕竟有它的某些方面的优势,我想了解两者的优劣,以及在哪种情况下需要用rest,谢谢~~解决方案REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源。rest的优势在于简单。相对于webservice,复杂的接口发现机制、lib依赖,rest则更加轻量级,且没有依赖;相对于传统的基于url+参数的操纵方式来说,rest更加清晰明了,如rest风格的url:取得所有用户http://www.test.com/ 取得某一个用户http://www.test.com/user/12345。REST是设计风格而不是标准。解决方案二:rest架构就是希望通过url来表示资源,参数附着在url之中,这只不过是一种设计风格,他能实现的功能,一般方式也可以实现;这就像java的参数命名规范,推荐使用驼峰风格的命名,但是你不遵守,写的程序照样可以运行。在win10环境下开发uwp程序,在调用bluetooth的API的时候出现问题
[问题点数:20分,无满意结帖,结帖人zhengjiafa]
在win10环境下开发uwp程序,在调用bluetooth的API的时候出现问题
[问题点数:20分,无满意结帖,结帖人zhengjiafa]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|

我要回帖

更多关于 c 请求webapi 的文章

 

随机推荐