Java 用飞信发短信,获取手机号码归属地,查询城市天气预报

前言:感谢那些为我们提供开源API的个人,团队,企业!敬礼!!!

简介:用开源apl完成发送手机飞信,查询号码归属地,查询天气。


功能:发飞信,查号码归属地,查天气

功能1:发飞信

FetionResult.java :处理返回数据结果

package Util;

public class FetionResult {
	private boolean ifSucceed;
	private String result;
	
	public FetionResult() {	}
	
	public FetionResult(boolean ifSucceed, String result) {
		this.ifSucceed = ifSucceed;
		this.result = result;
	}
	
	public boolean isIfSucceed() {
		return ifSucceed;
	}
	public void setIfSucceed(boolean ifSucceed) {
		this.ifSucceed = ifSucceed;
	}
	public String getResult() {
		return result;
	}
	public void setResult(String result) {
		this.result = result;
	}
	
}

FetionSend.java 发送飞信

package Util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class FetionSend {
	
	private String user; //mobile number of your fetion
	private String passwd; // the password for your account of fetion
	private String sendTo; // who you want to send
	private String message; // the message content
	
	private static final String httpUrl = "http://2.smsfx.sinaapp.com/send.php";
	

	public String getUser() {
		return user;
	}


	public void setUser(String user) {
		this.user = user;
	}


	public String getPasswd() {
		return passwd;
	}


	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}


	public String getSendTo() {
		return sendTo;
	}


	public void setSendTo(String sendTo) {
		this.sendTo = sendTo;
	}


	public String getMessage() {
		return message;
	}


	public void setMessage(String message) {
		this.message = message;
	}
	
	public FetionResult send() throws IOException {
		FetionResult result = new FetionResult();
		result.setIfSucceed(false);
		
		if ("".equals(user) || user == null) {
			result.setResult("The user name can't be empty!");
			return result;
		}
		
		if ("".equals(passwd) || passwd == null) {
			result.setResult("The password can't be empty!");
			return result;
		}
		
		if ("".equals(sendTo) || sendTo == null) {
			result.setResult("The number you send to can't be empty!");
			return result;
		}
		
		if ("".equals(message) || message == null) {
			result.setResult("The message content can't be empty!");
			return result;
		}
		
		String getUrl = new StringBuffer(httpUrl).append("?tel=").append(user).append("&pwd=").append(passwd)
						.append("&aim=").append(sendTo).append("&text=").append(URLEncoder.encode(message,"utf-8")).toString();
		URL urlLocate = new URL(getUrl);
		HttpURLConnection connection = (HttpURLConnection) urlLocate.openConnection();
		connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded,charset=utf-8");
		connection.connect();
		BufferedReader reader = new BufferedReader( new InputStreamReader(connection.getInputStream()));
		
		String lineResult;
		while ((lineResult = reader.readLine()) != null) {
			System.out.println(lineResult);
		}
		
		return result;
	}


}

功能2:查询号码归属地

这个返回的结果是json,所以得先学会怎么处理json

java处理json数据

JsonUtil.java 将返回的json存储为字符串

package Util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class JsonUtil {
 

    public static String loadJSON (String url) {
        StringBuilder json = new StringBuilder();
        try {
        	URL urlLocate = new URL(url);
    		HttpURLConnection connection = (HttpURLConnection) urlLocate.openConnection();
    		connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded,charset=utf8");
    		connection.connect();
            BufferedReader in = new BufferedReader(new InputStreamReader(
            		connection.getInputStream()));
            String inputLine = null;
            while ( (inputLine = in.readLine()) != null) {
                json.append(inputLine);
            }
            in.close();
        } catch (MalformedURLException e) {
        } catch (IOException e) {
        }
        return json.toString();
    }
    
    
}


__GetZoneResult_.java 存数返回的手机号码归属地数据

package dao;

public class __GetZoneResult_ {
	private String mts;
	private String province;
	private String catName;
	private String telString;
	private String areaVid;
	private String ispVid;
	public String getMts() {
		return mts;
	}
	public void setMts(String mts) {
		this.mts = mts;
	}
	public String getProvince() {
		return province;
	}
	public void setProvince(String province) {
		this.province = province;
	}
	public String getCatName() {
		return catName;
	}
	public void setCatName(String catName) {
		this.catName = catName;
	}
	public String getTelString() {
		return telString;
	}
	public void setTelString(String telString) {
		this.telString = telString;
	}
	public String getAreaVid() {
		return areaVid;
	}
	public void setAreaVid(String areaVid) {
		this.areaVid = areaVid;
	}
	public String getIspVid() {
		return ispVid;
	}
	public void setIspVid(String ispVid) {
		this.ispVid = ispVid;
	}
	

}

PhoneUtil.java 获取手机归属地

package Util;


import com.google.gson.Gson;

import dao.__GetZoneResult_;

public class PhoneUtil {
	
	public static __GetZoneResult_ getresult(String tel)
	{
        String url = "http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel="+tel+"";
        String json = JsonUtil.loadJSON(url);
        json=json.substring(json.indexOf("=")+1);
        Gson gson=new Gson();
        __GetZoneResult_ getresult=gson.fromJson(json, dao.__GetZoneResult_.class);
        return getresult;
	}
}

功能3:查询天气

WeatherInfo.java 存储天气信息

package dao;

public class WeatherInfo {
	//{"weatherinfo":{"city":"����","cityid":"101010100","temp1":"12��","temp2":"28��","weather":"��ת����","img1"
	//:"n53.gif","img2":"d1.gif","ptime":"18:00"}}
	private String city;
	private String cityid;
	private String temp1;
	private String temp2;
	private String weather;
	private String ptime;
	private String img1;
	private String img2;
	public String getImg1() {
		return img1;
	}
	public void setImg1(String img1) {
		this.img1 = img1;
	}
	public String getImg2() {
		return img2;
	}
	public void setImg2(String img2) {
		this.img2 = img2;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getCityid() {
		return cityid;
	}
	public void setCityid(String cityid) {
		this.cityid = cityid;
	}
	public String getTemp1() {
		return temp1;
	}
	public void setTemp1(String temp1) {
		this.temp1 = temp1;
	}
	public String getTemp2() {
		return temp2;
	}
	public void setTemp2(String temp2) {
		this.temp2 = temp2;
	}
	public String getWeather() {
		return weather;
	}
	public void setWeather(String weather) {
		this.weather = weather;
	}
	public String getPtime() {
		return ptime;
	}
	public void setPtime(String ptime) {
		this.ptime = ptime;
	}
	

}


WeatherUtil.java

package Util;



import com.google.gson.Gson;

import dao.WeatherInfo;

public class WeatherUtil {
	public static WeatherInfo getWeatherInfo(String cityId)
	{
		String url = "http://www.weather.com.cn/data/cityinfo/"+cityId+".html";
        String json = JsonUtil.loadJSON(url);
        json=json.substring(json.indexOf(":")+1,json.length()-1);
        System.out.println(json);
        Gson gson=new Gson();
        WeatherInfo getresult=gson.fromJson(json, dao.WeatherInfo.class);
        return getresult;
	}

}

测试:查询天气后用飞信发送

package test;


import java.io.IOException;

import org.junit.Test;

import dao.WeatherInfo;

import Util.FetionSend;
import Util.WeatherUtil;

public class TestWeather {

	@Test
	public void test() {
		String cityID="101120601";
		WeatherInfo weather=WeatherUtil.getWeatherInfo(cityID);
		FetionSend fetion = new FetionSend();
		fetion.setUser("18253591716");
		fetion.setPasswd("***********");
		fetion.setSendTo("18253591716");
		fetion.setMessage("城市:"+weather.getCity()+" 	最低温度:"+weather.getTemp1()+
				" 	最高温度:"+weather.getTemp2()+" 	天气状况:"+weather.getWeather()+" 	发布时间:"+weather.getPtime());
		System.out.println(fetion.getMessage());
		try {
			fetion.send();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

感悟:就那么简单,不需要太多的jar包,只需要一个解析JSON的

下载链接

gson-2.2.4.jar

相关源码



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值