Java中使用WebService實現簡單的天氣預報功能
*/
private static int CITICODE = 1670;
public static void main(String[] args) throws Exception {
String desc = "今天是" +DateUtils.getYear() + ","
+ DateUtils.getWeekOfDate(new Date());
desc += new Weather().getWeatherStr();
System.out.println(desc);
}
/**
* 通過 SERVICES_HOST來獲取對應的輸入流
*
*/
public InputStream getSoapInputStream(String url) {
InputStream inputStream = null;
try {
URL urlObj = new URL(url);
URLConnection urlConn = urlObj.openConnection();
urlConn.setRequestProperty("Host", SERVICES_HOST); // 具體webService相關
urlConn.connect();
inputStream = urlConn.getInputStream();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return inputStream;
}
/**
* 返回天氣
*/
public String getWeatherStr() {
String desc = "";
try {
List<String> weatherList = getWeather(CITICODE);
if (weatherList != null && weatherList.size() > 7) {
String tianqi = weatherList.get(7);
if (tianqi.contains("日")) {
tianqi = tianqi.substring(tianqi.indexOf("日") + 1);
}
String wendu = weatherList.get(8);
desc += ",天氣:" + tianqi;
desc += " ,";
desc += wendu.replace("/", "-");
}
} catch (Exception e) {
e.printStackTrace();
return desc;
}
return desc;
}
public List<String> getWeather(int cityCode) {
List<String> weatherList = new ArrayList<String>();
Document document;
DocumentBuilderFactory documentBF = DocumentBuilderFactory.newInstance();
documentBF.setNamespaceAware(true);
try {
DocumentBuilder documentB = documentBF.newDocumentBuilder();
InputStream inputStream = getSoapInputStream(WEATHER_QUERY_URL + cityCode);
document = documentB.parse(inputStream);
NodeList nl = document.getElementsByTagName("string");
for (int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
String weather = n.getFirstChild().getNodeValue();
weatherList.add(weather);
}
inputStream.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (DOMException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return weatherList;
}
}
相關推薦
***Java中WebSocket實現簡單的聊天***
Java中WebSocket實現簡單的聊天 1 在pom.xml中新增Jar包依賴 <dependency> <groupId>org.springframework.boot</groupId> <arti
Java中使用WebService實現簡單的天氣預報功能
進行查詢 */ private static int CITICODE = 1670; public static void main(String[] args) throws Exception { String desc = "今天是" +DateUtils.getYear() + "
Java中使用UDP實現簡單的聊天功能
udp http @override 簡單的 ima string [] 發送消息 sock 通過DatagramSocket類來實現。此類表示用來發送和接收數據報包的套接字。 發送端代碼如下: 2 3 import java.io.IOException; 4
微信訂閱號天氣預報功能的實現(java版)
實現天氣預報的功能我用的是車聯網的api,所以首先我們在百度開發者中心api中找到車聯網api,然後在左側導航欄的介面說明找到天氣查詢的介面說明,如下圖: 然後我們看到返回的json格式資料: 整套開發體系我是用的劉峰老師的那一套,然後是在他的那一套框架上開發的,大家有什
利用java webservice調用天氣預報實踐
eclipse 分享 src 預報 efi 測試 bsp 天氣 exception 最近要和其他業務系統進行數據交換,選擇了webservice方案,於是查了一下網上的用法。首先是做一個天氣的查詢例子,看著挺簡單,可實際動手做起來發現坑很多,費了半天勁終於調通了,於是記錄下
實現天氣預報功能
閒來無聊,寫下此文 經常看見很多網站上有那種天氣預報功能,自己之前也寫過一個,不過屬於那種涉及WCF服務引用那種,今天發現一個更為簡單的方式來實現,使用Javascript和Ajax技術,極少後臺程式碼,具體好與不好各位看官看了再說,儘管拍磚、、、 前置條件 在這個網址中有
android中實現簡單的聊天功能
這個例子只是簡單的實現了單機版的聊天功能,自己跟自己聊,啦啦~~ 主要還是展示RecyclerView控制元件的使用吧~ 參考我之前寫的文章: android中RecyclerView控制元件的使用 android中使用Nine-Patch圖片 1、先新增一個關於聊天
Java使用cookie實現簡單的單點登入功能
(一)取得cookie中的相關資訊Cookie[]cookies = request.getCookies(); Stringusername = ""; Stringpassword = ""; i
微信公眾平臺實現天氣預報功能
天氣預報是一種常見的功能,我們可以在自己的微信公眾號上新增這個功能。本文的天氣預報的內容是從www.webxml.com.cn拿過來的,不知道有沒有限制,先將就著用。還有一種是通過webservices獲取天氣預報。我就先用圖片的形式展現出來,文章的最後會給出原始碼。 SE
【java】IO流 實現簡單的複製功能
package ioTest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import
【java學習記錄】13.實現簡單的瀏覽器功能:獲取原始碼、儲存原始碼、獲取圖片
仿照IE瀏覽器,設計一簡單的網站訪問程式,實現如下功能: (1)具有類似IE的簡單介面,使用者能輸入URL地址,獲得輸入URL的HTML原始碼; (2)將獲得的HTML原始碼儲存到指定檔案中。D:\index.html (3)從獲得的HTML原始碼中,選擇
Android:使用AsyncTask實現天氣預報功能
實現效果: 重點如下: 天氣預報介面的使用 AsyncTask的使用 LruCache的使用 原始碼: activity_load_weather.xml 顯示最近三天的天氣。 <?xml version="1.0" e
微信開發(從申請微信到註冊上線的一整套流程)第四章 實現天氣預報功能
這一章裡,我們來實現微信上的天氣預報功能,我們使用方倍工作室的天氣預報介面,其介面為 http://apix.sinaapp.com/weather/ 這個介面的引數appkey為公眾號原始id,引數city為城市名 例如,查詢深圳的天氣預報時,將city值做urlenc
11.2-全棧Java筆記:Java中如何實現多線程
java在JAVA中使用多線程非常簡單,我們先學習如何創建和使用線程,然後結合案例再深入剖析線程的特性。通過繼承Thread類實現多線程繼承Thread類實現多線程的步驟:1. 在Java中負責線程的這個功能的是java.lang.Thread 這個類2. 可以通過創建 Thread 的實例來創建新的線程。3
實現簡單圖片下載功能及防盜鏈
nco eth coder lose ring || pro rect 下載 1.防盜鏈的基本原理就是就是一句話:通過判斷request請求頭的refer是否來源於本站。 2.HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上R
java中volatile的簡單理解
mic 執行 行修改 java內存 long ack html spa 多少 原創作品,可以轉載,但是請標註出處地址:http://www.cnblogs.com/V1haoge/p/7833881.html 據說,volatile是java語言中最輕量級的並發控制方
Java中swap()實現
exce http 實現 font lar 哈哈哈 exception color 使用 Java中swap()實現 1.今天可愛的譚老師發了一道題目,使用java寫方法交換Integer類型數據,而且入參固定了,題目請下圖: 入參固定的話,當時想到的是重新定義一個自
JAVA中的BigInteger與BigDecimal類功能強大
取余 並且 log 加減乘除 value java 構造函數 () eof BigInteger類是java為了處理大數字二專門制作的類,可以處理很大的數字(理論上無限大),並且可以實現大數字的類似於int所有數學運算。對算法題來說,再也不怕出現超出int範圍的運算了! 同
使用socket.io實現簡單的聊天功能
ins sock UNC say mes 輪詢 var document style Socket.io實際上是WebSocket的父集,Socket.io封裝了WebSocket和輪詢等方法 首先得在你的項目中安裝socket.io $ npm install sock
ORACLE+Myeclipse+jsp實現簡單登錄功能
public man drivers asus style 編寫 ole 建立 rom Oracle數據庫表的建立: create table Log( un char(20), pd char(25) ) ta