中国建筑集团招聘信息日喀则网站seo
**
使用第三方接口注意:
**
1.参考文档
1.1:请求接入点/ API point
1.2:请求参数/ Request parameter
1.3:返回参数/ Return parameter
2.解析json
2.1:多层json嵌套
2.1:多层嵌套加数组
上面都ok了,那么就可以驾驭大部分api了。
易源:https://www.showapi.com/share(每天20次调用api次数)
//这里需要替换为你自己的showapi_appid和showapi_sign,你可以在这里找到 https://www.showapi.com/console#/myApp
ShowApiRequest req=new ShowApiRequest("http://route.showapi.com/64-19","showapi_appid","showapi_sign");req.addTextPara("com","zhongtong");String res=req.post();System.out.println(res);
易源有自己封装好的sdk,jar。适合小白使用。很好理解
聚合数据:https://www.juhe.cn/(无封装sdk,和易源一样,但是比易源次数多)
接口大全:https://www.free-api.com/(接口非常多,无封装sdk)
自写调用api方法(基本可以通用,适合大部分api接口):
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;@WebServlet("/get")
public class JHData extends HttpServlet{public static final String APPKEY ="44c82f99d200d82949d9ba27ebd7c81c";public static final String APPKEY1="afb23abbb9583547bfaf8ee097967acd";public static final String APPKEY2="bd9ba4e73a8afdf03dad1a112416191d";//将map型转为请求参数型public static String urlencode(Map<String,Object> data) {StringBuilder sb = new StringBuilder();for (Map.Entry i : data.entrySet()) {try {sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return sb.toString();}/**** @param strUrl 请求地址* @param params 请求参数* @param method 请求方法* @return 网络请求字符串* @throws Exception*/public static String net(String strUrl, Map params,String method) throws Exception {HttpURLConnection conn = null;BufferedReader reader = null;String rs = null;try {StringBuffer sb = new StringBuffer();
// if(method==null || method.equals("GET")){
// strUrl = strUrl+"?"+urlencode(params);
// }strUrl = strUrl+"?"+urlencode(params);URL url = new URL(strUrl);conn = (HttpURLConnection) url.openConnection();
// if(method==null || method.equals("GET")){
// conn.setRequestMethod("GET");
// }else{
// conn.setRequestMethod("POST");
// conn.setDoOutput(true);
// }conn.connect();
// if (params!= null && method.equals("POST")) {
// try {
// DataOutputStream out = new DataOutputStream(conn.getOutputStream());
// out.writeBytes(urlencode(params));
// } catch (Exception e) {
//
// }
// }InputStream is = conn.getInputStream();reader = new BufferedReader(new InputStreamReader(is));String strRead = null;while ((strRead = reader.readLine()) != null) {sb.append(strRead);}rs = sb.toString();} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {reader.close();}if (conn != null) {conn.disconnect();}}
// String[] split = rs.split(",");
// for (String a:split){
// System.out.println(a);
// }return rs;}//1.身份证信息查询public static void getRequest1(){String result =null;String url ="http://apis.juhe.cn/idcard/index";//请求接口地址Map params = new HashMap();//请求参数params.put("cardno","***********");//身份证号码params.put("dtype","");//返回数据格式:json或xml,默认jsonparams.put("key",APPKEY);//你申请的keytry {result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);JSONObject result1=object.getJSONObject("result");System.out.println(object);String area=result1.getString("area");String sex=result1.getString("sex");String birthday=result1.getString("birthday");String verify=result1.getString("verify");System.out.println(area);System.out.println(sex);System.out.println(birthday);System.out.println(verify);} catch (Exception e) {e.printStackTrace();}}//1.二维码生成public static void getImg(){String result =null;String url ="http://apis.juhe.cn/qrcode/api";//请求接口地址Map params = new HashMap();//请求参数params.put("text","您好");//身份证号码params.put("dtype","");//返回数据格式:json或xml,默认jsonparams.put("key",APPKEY1);//你申请的keytry {result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);JSONObject result1=object.getJSONObject("result");System.out.println(object);String base64_image=result1.getString("base64_image");System.out.println(base64_image);// req.setAttribute("erimg",base64_image);//req.getRequestDispatcher("index.jsp").forward(req,res);} catch (Exception e) {e.printStackTrace();}}//1.天气信息查询public static void weather(){String result =null;String url ="http://apis.juhe.cn/simpleWeather/query";//请求接口地址Map params = new HashMap();//请求参数params.put("city","成都");//城市地址params.put("dtype","");//返回数据格式:json或xml,默认jsonparams.put("key",APPKEY2);//你申请的keytry {result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);JSONObject result1=object.getJSONObject("result");
// System.out.println(object);String city=result1.getString("city");JSONObject realtime=result1.getJSONObject("realtime");String temperature=realtime.getString("temperature");String humidity=realtime.getString("humidity");String info=realtime.getString("info");String wid=realtime.getString("wid");String direct=realtime.getString("direct");String power=realtime.getString("power");String aqi=realtime.getString("aqi");System.out.println(city+" :"+info+","+direct+","+power);JSONArray future =result1.getJSONArray("future");
// System.out.println(future);for(int i=0;i<future.size();i++){JSONObject one=future.getJSONObject(i);
// System.out.println(one);String date=one.getString("date");String temperature1=one.getString("temperature");String weather=one.getString("weather");String direct1=one.getString("direct");JSONObject wid1=one.getJSONObject("wid");String day=wid1.getString("day");String night=wid1.getString("night");System.out.println(date+","+temperature1+","+weather+","+direct1+","+day+","+night);}} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) throws Exception {getRequest1();getImg();weather();
//
// String result =null;
// String url ="https://v1.alapi.cn/api/kd";//请求接口地址
// Map params = new HashMap();//请求参数
// params.put("number","75340310260237");//身份证号码
// result =net(url, params, "GET");
// JSONObject object = JSONObject.fromObject(result);
// System.out.println(object);
// JSONObject data=object.getJSONObject("data");
String nu=data.getString("nu");
String com=data.getString("com");
System.out.println(nu+","+com);
// JSONArray info=data.getJSONArray("info");
// for (int i=0;i<info.size();i++){
// JSONObject index=info.getJSONObject(i);
// String time=index.getString("time");
// String content=index.getString("content");
// System.out.println(time+","+content);
// System.out.println("---------------------------------");
//
// }}}