API调用开发demo
package fastjson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/*
* 1.URLConnection 的使用
*
* 2.fastJson 的使用
*
*/
public class connAPI {
//xml格式数据
public static void xml() throws Exception{
//参数url化
String city = java.net.URLEncoder.encode("北京", "utf-8");
//拼地址
String apiUrl = String.format("https://www.sojson.com/open/api/weather/xml.shtml?city=%s",city);
//开始请求
URL url= new URL(apiUrl);
URLConnection open = url.openConnection();
InputStream input = open.getInputStream();
//这里转换为String,带上包名,怕你们引错包
String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
//输出
System.out.println(result);
}
//json 格式
public static void json() throws Exception{
//参数url化
String city = java.net.URLEncoder.encode("北京", "utf-8");
//拼地址
String apiUrl = String.format("https://www.sojson.com/open/api/weather/json.shtml?city=%s",city);
//开始请求
URL url= new URL(apiUrl);
URLConnection open = url.openConnection();
InputStream input = open.getInputStream();
//这里转换为String,带上包名,怕你们引错包
String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
//输出
System.out.println(result);
}
public static void fastjson(){
String neturl = "https://www.sojson.com/open/api/weather/json.shtml?city=%E5%8C%97%E4%BA%AC";
URL url;
try {
url = new URL(neturl);
StringBuffer document = new StringBuffer();
URLConnection conn = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
document.append(line);
}
reader.close();
// {"date":"20180921","message":"Success !","status":200,"city":"北京","count":2,
// "data":{"shidu":"28%","pm25":13.0,"pm10":23.0,"quality":"优","wendu":"19","ganmao":"各类人群可自由活动",
// "yesterday":{"date":"20日星期四","sunrise":"05:58","high":"高温 27.0℃","low":"低温 16.0℃","sunset":"18:17","aqi":54.0,"fx":"南风","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},
// "forecast":[{"date":"21日星期五","sunrise":"05:59","high":"高温 25.0℃","low":"低温 14.0℃","sunset":"18:15","aqi":34.0,"fx":"西北风","fl":"3-4级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},
// {"date":"22日星期六","sunrise":"06:00","high":"高温 23.0℃","low":"低温 14.0℃","sunset":"18:13","aqi":40.0,"fx":"西北风","fl":"3-4级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},
// {"date":"23日星期日","sunrise":"06:01","high":"高温 23.0℃","low":"低温 12.0℃","sunset":"18:12","aqi":30.0,"fx":"北风","fl":"4-5级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},
// {"date":"24日星期一","sunrise":"06:02","high":"高温 22.0℃","low":"低温 11.0℃","sunset":"18:10","aqi":37.0,"fx":"北风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},
// {"date":"25日星期二","sunrise":"06:03","high":"高温 23.0℃","low":"低温 13.0℃","sunset":"18:09","aqi":52.0,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"}]}}
JSONObject jsonObject = JSON.parseObject(document.toString());
String date = jsonObject.getString("date");
String message = jsonObject.getString("message");
Integer status = jsonObject.getInteger("status");
String city = jsonObject.getString("city");
// 解析后面
String datas = jsonObject.getString("data");
JSONObject jb = JSON.parseObject(datas);
String shidu = jb.getString("shidu");
String wendu = jb.getString("wendu");
String ganmao = jb.getString("ganmao");
Integer pm25 = jb.getInteger("pm25");
Integer pm10 = jb.getInteger("pm10");
String quality = jb.getString("quality");
System.out.println(document);
System.out.println(date);
System.out.println(message);
System.out.println(status);
System.out.println(city);
System.out.println(datas);
System.out.println(shidu);
System.out.println(pm25);
System.out.println(pm10);
System.out.println(quality);
System.out.println(shidu);
System.out.println(wendu);
System.out.println(ganmao);
JSONArray forecast = jb.getJSONArray("forecast");
System.out.println(forecast);
for (int i = 0; i < forecast.size(); i++) {
JSONObject json = forecast.getJSONObject(i);
System.out
.println(json.getString("fl") + ":"
+ json.getString("fx") + ":"
+ json.getString("notice"));
}
String yesterday = jb.getString("yesterday");
JSONObject yjb = JSON.parseObject(yesterday);
System.out.println(yjb.toString());
String date2 = yjb.getString("date");
String sunrise = yjb.getString("sunrise");
System.out.println(date2);
System.out.println(sunrise);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//fastjson();
try {
//xml();
json();
} catch (Exception e) {
e.printStackTrace();
}
}
}
API调用开发demo的更多相关文章
- WO+开放平台:API调用开发手记(话费计费接口2.0)
WO+能力共享平台(http://open.wo.com.cn)是中国联通推出的开放平台.拥有的丰富电信能力资源以及深度整合挖掘的第三方能力资源等.WO+平台提供的API均为简洁优雅的RESTful风 ...
- novaclient的api调用流程与开发
novaclient的api调用流程与开发 2015年07月05日 19:27:17 qiushanjushi 阅读数:3915 http://blog.csdn.net/tpiperatgod/ ...
- 如何用Baas快速在腾讯云上开发小程序-系列3 :实现腾讯云COS API调用
版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/640268001487425627 来源:腾云阁 h ...
- 【Qt编程】基于Qt的词典开发系列<八>--用户登录及API调用的实现
在上一篇文章<调用网络API>中,我仅仅讲述了怎样直观的使用API接口以及调用API后返回的结果,本文则从程序实现的角度来实现API的调用.当然本程序的实现也是借助于扇贝网的API接口文档 ...
- api 接口开发理论 在php中调用接口以及编写接口
如: http://localhost/openUser.php?act=get_user_list&type=json 在这里openUser.php相当于一个接口,其中get_user_l ...
- ABP开发框架前后端开发系列---(10)Web API调用类的简化处理
在较早期的随笔<ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目中的使用>已经介绍了Web API调用类的封装处理,虽然这些调用类我们可以使用代码生成工具快 ...
- ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目中的使用
在前面几篇随笔介绍了我对ABP框架的改造,包括对ABP总体的介绍,以及对各个业务分层的简化,Web API 客户端封装层的设计,使得我们基于ABP框架的整体方案越来越清晰化, 也越来越接近实际的项目开 ...
- ABP开发框架前后端开发系列---(4)Web API调用类的封装和使用
在前面随笔介绍ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以及简化了ABP框架的各个层的内容,使得我们项目结构更加清晰.上篇随笔已经介绍了字典模块中应用服务层接口的实现情况,并且通过 ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...
随机推荐
- ZOJ Monthly, January 2019-Little Sub and Pascal's Triangle
这个题的话,它每行奇数的个数等于该行行号,如果是0开始的,就该数的二进制中的1的个数,设为k,以它作为次数,2k就是了. #include <stdio.h> int main() { i ...
- Codeforces Round #877 (Div. 2) D. Olya and Energy Drinks
题目链接:http://codeforces.com/contest/877/problem/D D. Olya and Energy Drinks time limit per test2 seco ...
- 快速入门Sklearn
主要确定sklearn的基本流程,然后把sklearn当做螺丝刀来用就行了,需要什么查什么. 基本流程 首先我们回顾一下机器学习的基本流程: 特征工程,包括了数据清洗,数据标准版化,特征选取,特征降维 ...
- 【SaltStack】在Master上给Minion端安装zabbix
一.IP信息说明 [Master] IP: 192.168.236.100 [Minion] IP: 192.168.236.101 二.配置SaltStack 关于SaltStack Master和 ...
- 00030_ArrayList集合
1.数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变 2.JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合 ...
- CI框架两个application共用同一套 model
既然是要共用model文件,就要告诉系统去何处加载我们的模型文件.这个工作是在 Loader.php 这个类中完成的,所以就要修改默认的行为: /** * List of paths to load ...
- hdu 4251 The Famous ICPC Team Again划分树入门题
The Famous ICPC Team Again Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- php排序介绍_冒泡排序_选择排序法_插入排序法_快速排序法
这里我们介绍一些常用的排序方法,排序是一个程序员的基本功,所谓排序就是对一组数据,按照某个顺序排列的过程. 充效率看 冒泡排序法<选择排序法<插入排序法 排序分两大类: 内部排序法 交换式 ...
- 算法复习——带修改莫队(bzoj2453)
题目: Description 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N.为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色的弹珠有多少.当然,A ...
- 刷题总结——奇怪的游戏(scoi2012)
题目: 题目描述 Blinker 最近喜欢上一个奇怪的游戏.这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻的格子,并使这两个数都加上 1.现在 Blin ...