1. 程式人生 > >Java中使用WebService實現簡單的天氣預報功能

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;
    }
  }

相關推薦

***JavaWebSocket實現簡單的聊天***

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

javavolatile的簡單理解

mic 執行 行修改 java內存 long ack html spa 多少 原創作品,可以轉載,但是請標註出處地址:http://www.cnblogs.com/V1haoge/p/7833881.html   據說,volatile是java語言中最輕量級的並發控制方

Javaswap()實現

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