前言:感谢那些为我们提供开源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
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();
}
}
}