Colección de citas famosas - Colección de firmas - Cómo utilizar la interfaz API de Baidu Weather Forecast

Cómo utilizar la interfaz API de Baidu Weather Forecast

Dirección de la aplicación Baidu API Key: /apiconsole/key

Crear una aplicación como se muestra en la figura:?

Obtener la clave API después del envío como se muestra en la figura:?

Ejemplo de interfaz:/telematics/v3/weather? location=Nanchang&output=json&ak=Su clave API&mcode=Su firma digital SHA1;com.example.administrator.jsontest (nombre del paquete)

Descripción del parámetro de interfaz

Tipo de parámetro

p >

Nombre del parámetro

¿Es obligatorio?

Descripción detallada

Ubicación de la cadena verdadera Ingrese el nombre de la ciudad o la latitud y longitud. El nombre de la ciudad es tal. como Beijing o 131, y el formato de latitud y longitud es lng, coordenadas lat, como: ubicación = 116.305145,39.982368, el valor nacional es todo, devuelve las condiciones climáticas de las capitales provinciales y regiones autónomas, Hong Kong, Macao y Taiwán; y los pronósticos meteorológicos de varias ciudades están separados por "|", como: ubicación = 116.305145,39.982368|123.342323,36238945 |...

Salida de cadena falsa Formato de datos de salida, el formato predeterminado es xml, cuando la salida se establece en json y la salida tiene formato de datos json

Cadena coord_type false Coordenadas del parámetro de solicitud Tipo, el valor predeterminado son las coordenadas de latitud y longitud gcj02. Los valores permitidos son bd09ll, bd09mc, gcj02, wgs84

Datos JSON devueltos

{

"error":0,

"status":"éxito",

"fecha":"2016-03-05",

"resultados":[

{ p>

"currentCity":"Pekín",

"pm25":"144",

"index":[

{

"title": "Ropa",

"zs": "Más frío",

"tipt": "Índice de ropa",

"des":"Se recomienda usar abrigos y suéteres gruesos. Las personas mayores y los enfermos deben usar abrigos, abrigos de lana y suéteres de lana."},

{

"title":"Lavado de Autos",

"zs":"No apto",

"tipt":"Índice de Lavado de Autos",

" des": "No es adecuado lavar su automóvil. Habrá arena o polvo en las próximas 24 horas. Si lava su automóvil durante este período, se cubrirá fácilmente con polvo nuevo."},

{

" title":"Turismo",

"zs":"General",

"tipt":"Índice de turismo",

"des":" Los vientos ligeramente fuertes, la arena que sopla o el polvo flotante tendrán cierto impacto en la visibilidad y la calidad del aire. Preste atención a la seguridad del tráfico y tome las medidas adecuadas de prevención del polvo cuando viaje.

"},

{

"title":"Frío",

"zs":"Fácil",

" tipt ":"Índice de frío",

"des":"La diferencia de temperatura entre el día y la noche es grande y el viento es fuerte, lo que facilita el resfriado. Preste atención al ponerse o quitarse ropa. adecuadamente y reforzar la autoprotección para evitar resfriarse. "},

{

"title":"Deportes",

"zs":"Menos adecuado",

" tipt":"Índice de ejercicio",

"des":"Si sopla arena o polvo, se recomienda dejar de practicar deportes al aire libre y optar por hacer ejercicio en interiores para evitar inhalar más arena y polvo, lo cual es perjudicial para la salud. "},

{

"title":"Intensidad UV",

"zs":"Más débil",

" tipt":"Índice de intensidad ultravioleta",

"des":"Es un clima de radiación ultravioleta débil y no requiere protección especial. Si permanece al aire libre durante mucho tiempo, se recomienda aplicar productos de cuidado de la piel con protección solar con SPF entre 8 y 12.

"}

? ],

?"weather_data":[

?{

?"date":"Sábado 03 de enero 05 (tiempo real: 12 ℃)", ?"dayPictureUrl":"/images/weather/day/fuchen.png",

"nightPictureUrl":"/images/weather/night/qing png. ",

?"weather":"El polvo se ha vuelto soleado",

?"wind":"Viento del norte nivel 4-5",

? "temperatura":"12 ~ -1℃"},

?{

?"date":"Domingo",

"dayPictureUrl": "/images/weather/day/duoyun.png",

"nightPictureUrl":"/images/weather/night/duoyun.png",

?"weather":" Nublado",

?"viento":"Brisa",

?"temperatura":"10 ~ -3℃"},

?{

?"date":"Lunes", "dayPictureUrl":"/images/weather/day/duoyun.png",

"nightPictureUrl":"/images/weather/night /yin.png",

?"weather":"Nublado a nublado",

?"viento":"Brisa",

?"temperatura ":"13 ~ 2℃"},

?{

?"date":"Martes", "dayPictureUrl":"/images/weather/day/yin.png ",

"nightPictureUrl":"/images/weather/night/duoyun.png",

?"weather":"Nublado",

? "wind":"Nivel de viento del norte 3-4",

?"temperature":"6 ~ -1℃"}

?]}]}

3. ?Escribamos una demostración, el código es el siguiente:

paquete com.example.administrator.jsontest;

clase pública MainActivity extiende la actividad {

botón Botón privado;

TextView privado textView;

Controlador privado controlador = nuevo Controlador() {

@Override

público mango vacío

Mensaje(Mensaje msg) {

switch (msg.what) {

caso 0:

String re = (String) msg.obj;

textView.setText(re);

romper;

}

}

};

@Override

protected void onCreate(Bundle saveInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

botón = (Botón) findViewById(R.id.button);

textView = (TextView) findViewById(R.id.textView);

botón. setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Log.i("TAG", "Clic Botón");

sendRequestWithHttpClient();

}

});

}

vacío privado sendRequestWithHttpClient() {

new Thread(new Runnable() {

@Override

public void run() {

conexión HttpURLConnection = null;

prueba {

URL url = nueva URL("/telematics/v3/weather?location=Nanchang&output=json&ak=8ixCCFzlBB617YX7tONI2P5B&mcode=1C:6B:42:33 :E8 :A6:DC:A2:11:6E:26:EC:84:BD:42:E3:8E:6B:57:9A;com.example.administrator.jsontest");

conexión = (HttpURLConnection) url.openConnection();

conexión.setRequestMethod("GET");

conexión.setConnectTimeout(5000);

conexión

ection.setReadTimeout(5000);

InputStream in = connect.getInputStream();

Lector BufferedReader = new BufferedReader(new InputStreamReader(in));

Respuesta de StringBuilder = new StringBuilder();

Línea de cadena;

while ((line = lector.readLine()) != null) {

respuesta. append(línea);

}

Log.i("TAG", respuesta.toString()); parseJSONObjectOrJSONArray(response.toString());

} captura (MalformedURLException e) {

e.printStackTrace();

} captura (IOException e) {

e.printStackTrace(); p>

}

}

}).start();

}

//Analizar datos JSON

private void parseJSONObjectOrJSONArray(String jsonData) {

prueba {

String count = "";

JSONObject jsonObject = new JSONObject( jsonData) ;

JSONArray jsonArray = jsonObject.getJSONArray("resultados");

if (jsonArray.length() > 0) {

Objeto JSONObject = jsonArray. getJSONObject(0);

String ciudad = object.optString("currentCity");

JSONArray array = object.getJSONArray("weather_data");

for (int i = 0; i < array.length(); i++) {

JSONObject jsonObject1 = array.getJSONObject(i);

String dateDay =

jsonObject1.optString("fecha");

String tiempo = jsonObject1.optString("tiempo");

Cadena viento = jsonObject1.optString("viento");

String temperatura = jsonObject1.optString("temperatura");

recuento = recuento +"\n"+ fechaDía + " " + clima + " " + viento + " " + temperatura;

Log.i("AAA",count);

}

Mensaje mensaje = nuevo Mensaje();

mensaje.what = 0;

mensaje.obj = recuento;

handler.sendMessage(mensaje);

}

} captura (JSONException e ) {

e.printStackTrace();

}

}

}

4.? Los resultados son los siguientes:?