Java调用远程接口

摘要

在程序中,往往我们会调用远端接口,获取返回的数据,通常调用webservice接口,获取结果数据,下面就直接给予代码,敬请参考!

在程序中,往往我们会调用远端接口,获取返回的数据,通常调用webservice接口,获取结果数据,下面就直接给予代码,敬请参考!

package com.wgy.control;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

import com.wgy.util.DateUtils;

public class Weather {
	private static String WEATHER_SERVICES_URL = "http://www.gpsso.com/webservice/weather/weatherinfo.asmx/";
	/**
	 * 城市代码 /陕西西安: 101110101
	 */
	private static int CITICODE = 101110101;

	private static String WEATHER_QUERY_URL = WEATHER_SERVICES_URL
			+ "GetToDayWeatherInfo?CityCode=" + CITICODE;

	public static void main(String[] args) throws Exception {
		String desc = "今天是" + DateUtils.getYear() + ","
				+ DateUtils.getWeekOfDate(new Date());
		desc += new Weather().getSoapInputStream(WEATHER_QUERY_URL);
		System.out.println(desc);
		new Weather().getSoapAsList(WEATHER_QUERY_URL);

	}

	/**
	 * 返回远程接口String字符串
	 * @param url
	 * @return
	 */
	public String getSoapInputStream(String url) {
		BufferedReader br = null;
		URLConnection urlConn = null;
		String str = "", info = "";
		try {
			URL urlObj = new URL(url);
			urlConn = urlObj.openConnection();
			urlConn.connect();
			InputStreamReader isr = new InputStreamReader(
					urlConn.getInputStream());
			br = new BufferedReader(isr);
			while ((str = br.readLine()) != null) {
				info += str + "\n";
			}
			System.out.println(info);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	}
	
	public List<String> getSoapAsList(String url){
		List<String> list = new ArrayList<String>();
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document doc = builder.parse(url);
			NodeList nl = doc.getElementsByTagName("API");
			for (int i = 0; i < nl.getLength(); i++) {
				System.out.print("list:"+doc.getElementsByTagName("MESSAGE").item(i).getFirstChild().getNodeValue());
			}

		} catch (Exception e) {

			e.printStackTrace();

		}
		return list;
	}
	
	

}


IT家园
IT家园

网友最新评论 (0)