输出json数据:
public class Util {
//
public static String getString(String url) throws IOException {
try {
//1.创建一个网址的抽象表示
URL u = new URL(url);
//步骤:,
//
//2. 打开链接
URLConnection conn = u.openConnection();
//3.获取字节输入流
InputStream in = conn.getInputStream();
//4.将字节输入流装饰为能一次读取多行文字的缓冲字符输入流,
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
//5.读取一行行的数据并汇总
StringBuffer sf = new StringBuffer();
String text = null;
while((text = br.readLine()) != null)
{
sf.append(text);
}
//将读取的数据返回给调用者
return sf.toString();
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
public static void main(String[] args) throws IOException {
String json = getString("https://itdage.cn/hw/weather?city=%E6%9D%AD%E5%B7%9E");
System.out.println(json);
}
}
注意点:
//可以换成
String city = "北京" json = getString("https://itdage.cn/hw/weather?city="+URLEncoder.encode(city,"utf-8")
发短信:
先测试发送固定内容
public static void main(String[] args) throws IOException {
String city = "北京";
String name="b( ̄▽ ̄)d 宝";
name = URLEncoder.encode(name,"utf-8");
// String json = getString("https://itdage.cn/hw/weather?city="+URLEncoder.encode(city,"utf-8"));
//可以换成 String city = "北京" getString("https://itdage.cn/hw/weather?city="+URLEncoder.encode(city,"utf-8")
//z System.out.println(json);
//String phoneNumber = "19976883561";
String s1 = "天晴";
s1 = URLEncoder.encode(s1,"utf-8");
String s2 = "30-32";
String s3 = "记得注意休息哦~(捂脸)测一个简单的发短信程序";
s2 = URLEncoder.encode(s2,"utf-8");
s3 = URLEncoder.encode(s3,"utf-8");
String json2 = getString("https://itdage.cn/hw/hwSms?name="+name+"&phoneNumber="+phoneNumber+"&s1="+s1+"&s2="+s2+"&s3="+s3);
System.out.println(json2);
}
输出ok,手机上可以看到短信
用一个执行任务的线程:
public class SNStask {
private static Boolean flag;
private static Thread t1;
public static void start(long time,String name,String phoneNumber,String city)
{
//启动任务的代码
if(!flag)
{
t1 = new Thread()
{
@Override
public void run() {
flag = true;
task:
while (flag) {
String text = Util.send(name, phoneNumber, city);
if (!"OK".equals(text)) {
continue;
}
try {
Thread.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
break task;
}
}
}
};
t1.start();
}
}
public static void end(){
flag = false;
if(t1 != null)
{
t1.interrupt();
}
}
}
设置访问路径:
@WebServlet("/start")
public class StartServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, UnsupportedEncodingException {
request.setCharacterEncoding("utf-8");//设置编码
response.setContentType("text/json;charset=utf-8");
//获取参数、姓名、手机号、城市
String name = request.getParameter("name");
String phoneNumber = request.getParameter("phoneNumber");
String city = request.getParameter("city");
SNStask.start(time,name,phoneNumber,city);
}
}