首先看下Java进行http请求的代码:
URLConnection conn = null
URL u = new URL(url)
conn = u.openConnection()
conn.setRequestMethod('POST')
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);
conn.setDoInput(true);
conn.setDoOutput(true);
1.主要概念:URL、URLConnection、HttpURLConnection
2.URLConnection的实例都是通过URL的openConnection()方法获取,常用的http请求对象都是返回HttpURLConnection子类的实例。
3.URL类可支持多种网络协议,如:http、https、ftp等,它通过Hashtable<String,URLStreamHandler> handlers存放多种协议的URLStreamHandler实现,handler的主要工作包括设置默认端口号、调用openConnection()方法获取相应URLConnection子类实例,如可以获取HttpURLConnection,实例通过URLStreamHandlerFactory工厂类创建,工厂类需要Tomcat等服务器自行实现;URL类的openConnection()其实就是调用了handler的openConnection()方法;