*近写第三方短信验证时使用了Java中的URL类,简单的几行代码就可以高效完成。

代码如下:

String contentUrlEncode = URLEncoder.encode(content,encode);
buffer.append(“http://ceshi/api/sendto/mm.php?username=”+username+”&password_md5=”+password_md5+”&mobile=”+mobile+”&apikey=”+apikey+”&content=”+contentUrlEncode+”&encode=”+encode);
//把buffer链接存入新建的URL中
URL url = new URL(buffer.toString());
//打开URL链接
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
//使用POST方式发送
connection.setRequestMethod(“POST”);
//使用长链接方式
connection.setRequestProperty(“Connection”, “Keep-Alive”);
//发送短信内容
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
//获取返回值
String result = reader.readLine();

之后可以对返回值进行操作。

一旦你成功的创建了一个URL class的实例,你就可以对其进行操作了。但是在你能够访问这个URL上的资源和内容之前,你必须要打开到这些资源与内容上的连接。
你可以通过使用openConnection来完成这一操作,如下。

1 //打开URL链接
2 HttpURLConnection connection = (HttpURLConnection)url.openConnection();

使用openConnection并不需要参数,并且在操作成功之后,它会返回一个URLConnection class的实例。上例中国,向我们演示了打开一个到URL连接的过程。一旦你的连接成功,你就可以开始对这个URLConnection的输入以及输出流进行读和写的操作了。

顺道说一下长连接,短连接;

在日常项目中,大多的时候我们用的是短连接,一个请求过来,一个线程处理完该请求,线程被线程池回收,这个请求就关闭了.虽然这能满足很大部分的需求,但是也有些问题,比如说:如果客户端发的请求比较多,比较频繁,服务端就会忙于建立连接处理请求,由于服务端的线程数也有限,并发比较大的话有可能会造成服务端的崩溃.那有没有一种办法使连接少一些,让一个线程可以处理多个连接?长连接的出现就是为了解决上面的问题.