1、天氣預(yù)報(bào)web services地址?
創(chuàng)新互聯(lián)公司是一家專注于做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計(jì),云和網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:云和等地區(qū)。云和做網(wǎng)站價(jià)格咨詢:18982081108
用瀏覽器打開(kāi)此地址,保存頁(yè)面為Weather.xml
2、新建一個(gè)java工程 webservices
建立包名 com.test.ws??
將Weather.xml拷貝到src目錄下
3、編寫(xiě)批處理WSDL-SQUARED.CMD,使用wsdj2java生成客戶端調(diào)用代碼
set?AXIS_HOME=D:\axis-1_4
set?CLASSPATH=.;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar
java?org.apache.axis.wsdl.WSDL2Java??-p?com.test.ws?Weather.xml
可以在JFrame中添加幾個(gè)Label控件或其他文本控件用來(lái)展示解析出來(lái)的結(jié)果
簡(jiǎn)單的方法,可以直接在servlet的doGet或doPost里面構(gòu)建這個(gè)xml,然后寫(xiě)回響應(yīng)就可以了。
需要搭建java應(yīng)用服務(wù)器如tomcat服務(wù)器,運(yùn)行這個(gè)servlet就可以。
xml的構(gòu)建對(duì)于Java來(lái)說(shuō)工具很多,JDOM, Dom4J等。
如果客戶端要求用web service方式提供,就考慮Apache CXF這些Java Web服務(wù)框架,不過(guò)一般沒(méi)必要的。
①取出地址中的返回值(getWeatherReader方法)
②解析json格式的字符串
③形成你要展示的天氣預(yù)報(bào)效果
public static String getWeatherReader() {//取得接口字符串
String currentLine = "";
String strReturn = "";
URL url = null;
HttpURLConnection conn = null;
InputStream in = null;
BufferedReader buff = null;
try {
url = new URL("");
System.out.println(url.toURI());
//打開(kāi)地址鏈接
conn = (HttpURLConnection)url.openConnection();
conn.connect();
//接收數(shù)據(jù)
in = conn.getInputStream();
//如有亂碼注意編碼方式,如:UTF-8
buff = new BufferedReader(new InputStreamReader(in, "gb2312"));
while((currentLine = buff.readLine()) != null) {
strReturn += currentLine;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
in.close();
buff.close();
} catch (IOException e) {
return "8EF0000";
}
}
return strReturn;
}
//通過(guò)中國(guó)天氣api調(diào)用
private String getWeatherInfo2(){
StringBuilder info = new StringBuilder();
try {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httget = new HttpGet("");
ResponseHandlerString responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httget, responseHandler);
System.out.println(responseBody);
JsonParser jp = new JsonParser();
JsonElement jse = jp.parse(responseBody);
JsonObject jso = jse.getAsJsonObject().get("weatherinfo").getAsJsonObject();
// String updTime = jso.get("fchh").getAsString();
// if(updTime != null){
// //溫度
// String j = jso.get("temp1").getAsString();//今天
// String m = jso.get("temp2").getAsString();//明天
// //天氣情況
// String j_weather = jso.get("weather1").getAsString();//今天
// String m_weather = jso.get("weather2").getAsString();//明天
// //風(fēng)向風(fēng)力
// String j_wind = jso.get("wind1").getAsString();//今天
// String m_wind = jso.get("wind2").getAsString();//明天
// info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");
// info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n");
// }
String updTime = jso.get("fchh").getAsString();
if(updTime != null){
if(!updTime.trim().equals("18")){
//溫度
String j = jso.get("temp1").getAsString();//今天
String m = jso.get("temp2").getAsString();//明天
//天氣情況
String j_weather = jso.get("weather1").getAsString();//今天
String m_weather = jso.get("weather2").getAsString();//明天
//風(fēng)向風(fēng)力
String j_wind = jso.get("wind1").getAsString();//今天
String m_wind = jso.get("wind2").getAsString();//明天
info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");
info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n");
}else{
//18
//溫度
String temp1 = jso.get("temp1").getAsString();//今天
String temp2 = jso.get("temp2").getAsString();//今天
String temp3 = jso.get("temp3").getAsString();//今天
String j = temp1.split("~")[1] + "~" + temp2.split("~")[0];
String m = temp2.split("~")[1] + "~" + temp3.split("~")[0];//明天
//天氣情況
String weather1 = jso.get("weather1").getAsString();
String weather2 = jso.get("weather2").getAsString();
String weather3 = jso.get("weather3").getAsString();
String j_weather = "";
String j_weather_part1 = "";
String j_weather_part2 = "";
//判斷是否有轉(zhuǎn)
if(weather1.indexOf("轉(zhuǎn)") 0){
//有
j_weather_part1 = weather1.split("轉(zhuǎn)")[1];
}else{
j_weather_part1 = weather1;
}
if(weather2.indexOf("轉(zhuǎn)") 0){
//有
j_weather_part2 = weather2.split("轉(zhuǎn)")[0];
}else{
j_weather_part2 = weather2;
}
if(j_weather_part1.equalsIgnoreCase(j_weather_part2)){
j_weather = j_weather_part1;//今天
}else{
j_weather = j_weather_part1 + "轉(zhuǎn)" + j_weather_part2;//今天
}
String m_weather = "";
String m_weather_part1 = "";
String m_weather_part2 = "";
//判斷是否有轉(zhuǎn)
if(weather2.indexOf("轉(zhuǎn)") 0){
//有
m_weather_part1 = weather2.split("轉(zhuǎn)")[1];
}else{
m_weather_part1 = weather2;
}
if(weather3.indexOf("轉(zhuǎn)") 0){
//有
m_weather_part2 = weather3.split("轉(zhuǎn)")[0];
}else{
m_weather_part2 = weather3;
}
if(m_weather_part1.equalsIgnoreCase(m_weather_part2)){
m_weather = m_weather_part1;//今天
}else{
m_weather = m_weather_part1 + "轉(zhuǎn)" + m_weather_part2;//明天
}
//風(fēng)向風(fēng)力
String j_wind = jso.get("wind2").getAsString();//今天
String m_wind = jso.get("wind3").getAsString();//明天
info.append("今天:").append(j).append(" ").append(j_weather).append(" ").append(j_wind).append("\n");
info.append("明天:").append(m).append(" ").append(m_weather).append(" ").append(m_wind).append("\n");
}
}
} catch (Exception e) {
}
return info.toString();
}
做軟件的人都不喜歡發(fā)明重復(fù)的輪子,天氣那種情況是用的webservice技術(shù)解決的,通過(guò)SOAP協(xié)議,必須天氣預(yù)報(bào)那個(gè)項(xiàng)目那面提供給你一個(gè)接口才可以,還需要提供給你wsdl文件。 如果想自己實(shí)現(xiàn),那你自己得做一個(gè)那樣的功能。 webservice好處就在于在不同語(yǔ)言中獲取’行為‘,因?yàn)樗峭ㄟ^(guò)xml文件傳遞數(shù)據(jù)。
網(wǎng)頁(yè)標(biāo)題:java抓取天氣預(yù)報(bào)代碼 java天氣預(yù)報(bào)接口
鏈接地址:http://muchs.cn/article30/hgispo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、做網(wǎng)站、網(wǎng)站制作、外貿(mào)建站、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)