Java-通过URL来调用WebAPI
title: Java 通过URL来调用WebAPI
date: 2019-05-13 07:27:14
tags:
API
什么是API
API(Application programming interface)是一些预先定义的函数,无需理解内容细节,只需要根据协议调用即可。
个人理解
本文主要想描述的WebApi是指一些通过Http协议调用的第三方提供的服务,这种Api在给出的时候一般都是一种URL的形式,调用时直接用过Http协议,对URL上加上自己想要加的参数之后接收返回值即可。
URL
参考 邻家大表哥的CSDN博客
URL的各个组成部分
一个完整的URLhttp://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#r_70732423
其中应包括:
协议部分
如本例中的http:,这代表了这个URL的http协议的,常见的还有https和ftp,后面的//是分隔符
域名部分
本例中的"www.aspxfans.com",一个IP也可以当做域名使用,由自己的IP映射到域名是需要自己购买域名的。
端口号
域名后面的 “:8080” 是端口号,如果没有给出端口号说明是默认的http端口号,为80,大型网站一般都没有端口号。
虚拟目录部分
8080: 后面的 /news/ 是虚拟目录部分,表示文件在服务器上的位置,虚拟目录并不是必要的。
文件名
对应本例中的index.asp,表示浏览的具体是哪个文件,文件名部分是可以省略的,省略之后则会使用默认的文件,一般是index.*。
参数部分
从文件名后的"?"开始对应的就是URL的参数部分,URL的参数是键值对的形式,即Key=value,中间用&分开多个参数。
锚部分
最后的#r_70732423,不是一个URL必须的部分,通常表示在一个界面的浏览位置。
Java实例
百度地图给出的经纬度转实际地址API
服务文档
在调用一个第三方平台的Api时,一定要仔细浏览他所给出的服务文档,这是我们接触Api调用方式最基本的途径。
在文档里面我们可以看到WebApi对应的Http链接和参数说明,下面直接利用Java的URL类调用。
public void transform(final String[] positions){
// final String[] position ={"39.26","116.2317"};
new Thread(){
@Override
public void run(){
try{
ObjectBox oBox = ObjectBox.getInstance();
Handler mHandler = oBox.getmHandler();
String uri = "http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location="+positions[0]+","+positions[1]+"output=json&pois=1&latest_admin=1&ak="+AK;
URL url = new URL(uri);
byte[] recBuf = new byte[1024];
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
if (urlConnection.getResponseCode() == 200){
InputStream is = urlConnection.getInputStream();
int length = is.read(recBuf);
String res = new String(recBuf,0,length);
} else Log.w("Transform", "status code"+urlConnection.getResponseCode());
}catch (Exception E){E.printStackTrace();}
}
}.start();
}
利用String的字符串拼接,将自己的参数加到Url中,之后利用java的Url类和HttpURLConnection类创建链接,之后获取利用urlConnetcion的getInputStream方法进行读取便可得到调用结果,返回结果可能是Xml也可能是Json,根据返回类型进行处理即可得到自己的数据。
上一篇: 3一个简单的Shader
下一篇: 关于JavaScript深拷贝的一些理解
推荐阅读
-
Java-通过URL来调用WebAPI
-
菜鸟求教个菜问题,这个php签到源码,我想通过提交个URL来传参数并执行自动签到,要怎么?多谢!!
-
菜鸟求教个菜问题,这个php签到源码,我想通过提交个URL来传参数并执行自动签到,要怎么?多谢!!
-
PHP怎么通过URL访问,获得新的URL 【调用百度map】
-
PHP如何通过URL访问,获得新的URL 【调用百度地图】
-
相关wordpress通过php来调用javascript
-
python如何通过函数名的字符串来调用这个函数
-
通过C#调用cmd来修改服务启动类型
-
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
-
通过C#调用cmd来修改服务启动类型