Java 中URL 类的使用

最近写第三方短信验证时使用了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来完成这一操作,如下。

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

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_36866808/article/details/79037043