HttpUrlConnection
HttpUrlConnection继承UrlConnection。抽象类URLConnection
是表示应用程序和URL之间的通信链接的所有类的超类。
1.HttpUrlConnection 对象通过Url对象的 openConnection方法来得到。 先用 url = New Url(访问url地址)得到一个url对象。
2.设置一些 HttpUrlConnection对象的一些参数,比如:
setAllowUserInteraction setDoInput //设置是否可以接受连接数据 setDoOutput //设置是否可以写入连接 setIfModifiedSince setUseCaches
conn.setRequestMethod("GET"); // 设置请求方式 或是post
3. HttpUrlConnection对象的 connection方法来建立连接。
4.使用get方法请求时直接吧需要传递的数据写在加在url的后面。
使用Post方法时:
1 1 // 现在通过输出流对象构建对象输出流对象,以实现输出可序列化的对象。 2 2 ObjectOutputStream objOutputStrm = new ObjectOutputStream(outStrm); 3 3 4 4 // 向对象输出流写出数据,这些数据将存到内存缓冲区中 5 5 objOutputStrm.writeObject(new String("我是测试数据")); 6 6 7 7 // 刷新对象输出流,将任何字节都写入潜在的流中(些处为ObjectOutputStream) 8 8 objOutputStm.flush(); 9 9 10 10 // 关闭流对象。此时,不能再向对象输出流写入任何数据,先前写入的数据存在于内存缓冲区中, 11 11 // 在调用下边的getInputStream()函数时才把准备好的http请求正式发送到服务器 12 12 objOutputStm.close(); 13 13 14 14 // 调用HttpURLConnection连接对象的getInputStream()函数, 15 15 // 将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端。 16 16 InputStream inStrm = httpConn.getInputStream(); // <===注意,实际发送请求的代码段就在这里 17 17 18 18 // 上边的httpConn.getInputStream()方法已调用,本次HTTP请求已结束,下边向对象输出流的输出已无意义, 19 19 // 既使对象输出流没有调用close()方法,下边的操作也不会向对象输出流写入任何数据. 20 20 // 因此,要重新发送数据时需要重新创建连接、重新设参数、重新创建流对象、重新写数据、 21 21 // 重新发送数据(至于是否不用重新这些操作需要再研究) 22 22 objOutputStm.writeObject(new String("")); 23 23 httpConn.getInputStream()
5. HttpUrlConnection对象的disconnect来端来连接。
示应用程序和URL之间的通信链接的所有类的超类