今天抽出时间给大家分享下java访问api接口的案例,api接口就是应用程序编程接口,由别人提供的接口我们去调用,在接口中别人写了一些方法我们需要调用。
有很多访问api接口的方法,这里我分享的是commons-httpclient这个包里的方法。在这里我就做了一个访问有道词典api的接口。
首先需要导入commons-httpclient包,手动或maven项目自行百度就有,有道词典api接口需要申请后才可以。在这里我已申请就不演示了。
@RequestMapping("ydapi.xhtml")
public @ResponseBody String ydapi(HttpServletRequest req) throws UnsupportedEncodingException{
//翻译的内容用encoder编译
String str=URLEncoder.encode("How old are you");
//接受反回的Json
String boty="";
//传参的类
List<NameValuePair> pair=new ArrayList<NameValuePair>();
//有道翻译api接口,需要自己申请生成key
String url = "http://fanyi.youdao.com/openapi.do?keyfrom=youdianbao&key=1661829537&type=data&doctype=json&version=1.1&q="+str;
//实例化defaultHttpClient
DefaultHttpClient hc=new DefaultHttpClient();
try {
//实例化post方式访问并且把路径放入
HttpPost httppost=new HttpPost(url);
//把需要的参数传入
httppost.setEntity(new UrlEncodedFormEntity(pair,HTTP.UTF_8));
//执行访问返回resp
HttpResponse resp=hc.execute(httppost);
//获取访问的结果
HttpEntity entity=resp.getEntity();
//把返回的结果转成字符串
boty=EntityUtils.toString(entity);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}//运行完后执行
finally {
hc.getConnectionManager().shutdown();
}
return boty;
}
注意事项:
A、上图url路径有道申请成功后会有,如需调用别的api接口可更改。
B、我这里包的版本是3.1,版本不用有些用法不同。