public class GetWeather {
public static void main(String[] args) {
String httpUrl = "http://apis.baidu.com/apistore/weatherservice/citylist";
String httpArg = "cityname=%E6%9C%9D%E9%98%B3";
String jsonResult = request(httpUrl, httpArg);
System.out.println(unicode2String(jsonResult));
}
/**
* @param urlAll
* :请求接口
* @param httpArg
* :参数
* @return 返回结果
*/
public static String request(String httpUrl, String httpArg) {
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
// 填入apikey到HTTP header
connection.setRequestProperty("apikey", "92b9ce55bfdc6d18aff38a18cd286b8d");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
//将返回的中文字符的编码(乱码)处理一下,转换成正确的中文
public static String unicode2String(String str){
int indexU=0;
StringBuffer result=new StringBuffer();
char t;
indexU=str.indexOf("\\u");
while(indexU>=0){
result.append(str.substring(0,indexU));
t=(char)Integer.parseInt(str.substring(indexU+2,indexU+6),16);
result.append(t);
str=str.substring(indexU+6);
indexU=str.indexOf("\\u");
}
return result.toString();
}
}
JAVA通过API获取天气预报信息(HTTP协议)
最新推荐文章于 2024-08-20 14:36:57 发布