Java http请求快速入门

今日得闲看了下Java的http请求相关类,做下笔记。

先看下代码:

URLConnection conn = null
URL u = new URL(url)
conn = u.openConnection()

//如果conn是HttpURLConnection对象的实例可以通过conn.setRequestMethod('POST') 设置请求方式

//设置允许读入和发送数据
conn.setDoInput(true);
conn.setDoOutput(true);

conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(bytes.length ?: 0));
conn.setRequestProperty("Content-Language", "en-US");

conn.setConnectTimeout(timeout)
conn.setReadTimeout(timeout)
conn.setUseCaches(false);

//发送post数据
connection.getOutputStream().write(bytes)
connection.getOutputStream().flush()

//读取请求结果
InputStream is = connection.getInputStream()
reader = new BufferedReader(new InputStreamReader(is,encoding))
String line;
response = new StringBuilder();
while ((line = reader.readLine()) != null) {
     response.append(line);
}
response.toString()
  • 主要概念:URL、URLConnection、HttpURLConnection

  • URLConnection的实例均通过URL的openConnection()方法获取,常用的http请求返回HttpURLConnection实例。

  • URL对象会根据构造方法参数创建相应协议的URLStreamHandler对象并存入Hashtable handlers ,同时设置要使用的handler;handler的主要工作包括设置协议的默认端口号、调用 openConnection() 方法;URL类可支持多种网络协议,如http、https、ftp等。

  • URL类的openConnection()其实就是调用了sun.net.www.protocol.http.Handler的openConnection()方法创建HttpURLConnection实例,代码如下:

protected URLConnection openConnection(URL var1, Proxy var2) throws IOException {
        return new HttpURLConnection(var1, var2, this);
}
  • 发送post请求数据需要设置conn.setDoOutput(true)conn.setDoInput(true)

你可能感兴趣的:(Java http请求快速入门)