1jdk上的标准说明
-
public abstract class
URLConnection
extends
Object
super class of:
- HttpURLConnection
抽象类 URLConnection
是所有表示应用程序与 URL 之间通信链路的类的超类。该类的实例可以用来对由 URL 引用的资源进行读取和写入操作。一般情况下,生成一个对 URL 的连接是一多步过程:
openConnection() | connect() |
---|---|
影响对远程资源连接的操纵参数。 | 与资源的交互:查询头文件域和内容。 |
time
- 通过调用 URL 的
openConnection
方法产生一连接对象。 - 操纵设置参数和一般请求属性。
- 使用
connect
方法,实现对远程对象的实际连接。 - 远程对象一旦可用,就可以访问远程对象的域和内容。
通过如下的方法修改设置参数:
- setAllowUserInteraction
- setDoInput
- setDoOutput
- setIfModifiedSince
- setUseCaches
通过使用如下的方法修改一般请求属性:
- setRequestProperty
AllowUserInteraction
和 UseCaches
参数的缺省值可以通过使用 setDefaultAllowUserInteraction
和 setDefaultUseCaches
方法来设置。 而一般请求属性的缺省值可以通过方法 setDefaultRequestProperty
来设置 。
上面的每个 set
方法都有相应 get
方法来获取参数和一般请求属性的值。可用的特定参数和一般请求属性是特定于协议的。
对远程对象的连接完成后,用下列方法访问报头域和内容:
- getContent
- getHeaderField
- getInputStream
- getOutputStream
确认报头域能够被频繁访问。方法:
- getContentEncoding
- getContentLength
- getContentType
- getDate
- getExpiration
- getLastModified
提供对这些域的便利访问。 getContentType
方法由 getContent
方法调用以确定远程对象的类型; 子类来覆盖方法 getContentType
可能是有利的。
在通常的情况下,所有的连接前参数和一般请求属性都可以忽略:系统为它们预置合理的值。对大多数该接口的客户机来说,只对两个方法感兴趣:getInputStream
和 getObject
,一些便捷方法把它们在 URL
类中作了映象。
1发送post请求
public class DoPostURLConnection
{
public static void main(String args[])
{
try{
URL url = new URL("http://localhost:8888/97741/815/formAction.asp");
URLConnection uc = url.openConnection();
uc.setDoOutput(true);
OutputStream raw = uc.getOutputStream();
OutputStream buf = new BufferedOutputStream(raw);
OutputStreamWriter out = new OutputStreamWriter(buf,"GBK");
out.write("myName=Alec Cheung&myEmail=eboysit@hotmail.com");
out.flush();
out.close();
InputStream in = uc.getInputStream();
in = new BufferedInputStream(in);
Reader r = new InputStreamReader(in);
int c;
System.out.println("==================Beging====================");
while((c = r.read()) != -1)
System.out.print((char) c);
in.close();
System.out.println("===================End======================");
}
catch(IOException e){
///
}
}
}