URLConnection类有七个保护的实例字段,定义了客户端如何向服务器发出请求,这些字段包括:
protected URL url;
protected boolean doInput = true;
protected boolean doOutput = false;
protected boolean allowUserInteraction = defaultAllowUserInteraction;
protected boolean useCache = defaultUseCache;
protected long ifModifySince = 0;
protected boolean connected = false;
protected URL url
指定了这个URLConnection连接的URL。构造函数会在创建URLConnection时设置这个字段,以后不能再做更改。可以通过调用getURL()获取这个字段的值
protected boolean connected
如果连接已经打开,返回true,如果连接已经关闭,返回false,由于创建URLConnection时,连接尚未打开,所以初始值时false。这个变量只能有java.net.URLConnection及其子类的实例访问。
protected boolean allowUserInteraction
有些URLConnection需要与用户交互,让用户提供用户名和密码。
protected boolean doInput
URLConnection可以用来读取服务器,写入服务器,或者同时用于读/写服务器。如果URLConnection可以用来读取,保护类型的boolean字段doInput就为true,否则为false
protected boolean doOutput
程序可以使用URLConnection将输出发回服务器。例如,如果程序需要使用POST方法向服务器发送数据,可以通过从URLConnection获取输出流来完成。如果URLConnection可以用于写入,保护类型boolean字段doOutput就为ture,否则就为false,默认值为false,要访问这个字段,可以使用getDoOutput()和setDoOutput()方法;
为一个HTTP URL将DoOutput设置为true时,请求方法就由GET更改为了POST。
protected long ifModifySince
许多客户端(尤其时WEB客户端和代理)会保留以前获取的文档的缓存。如果用户再次要求相同的文档,可以从缓存中活取。不过,在最后一次获取这个文档之后,服务器上的文档可能改变。要判断是否改变,唯一的办法是询问服务器。客户端可以在客户端请求的HTTP首部中包含一个if-Modified-Since。这个首部包括一个日期和时间。如果文档在这个时间后有所修改,服务器就发送该文档,否则就不发送。一般情况下,这个时间是客户端最后获取文档的时间。
protected boolean useCache
是否使用缓存,默认是ture如果设置为false,则每次都会去服务端拉取最新的页面。