关于 httpUrlConnection 的 setDoOutput 与 setDoInput

来源:互联网 发布:淘宝闺蜜网址 编辑:程序博客网 时间:2024/05/18 03:24
[java] view plaincopy
  1. httpUrlConnection.setDoOutput(true);以后就可以使用conn.getOutputStream().write()  
  2. httpUrlConnection.setDoInput(true);以后就可以使用conn.getInputStream().read();  
  3.   
  4. get请求用不到conn.getOutputStream(),因为参数直接追加在地址后面,因此默认是false。  
  5. post请求(比如:文件上传)需要往服务区传输大量的数据,这些数据是放在http的body里面的,因此需要在建立连接以后,往服务端写数据。  
  6.   
  7. 因为总是使用conn.getInputStream()获取服务端的响应,因此默认值是true。  


[java] view plaincopy
  1. public void setDoInput(boolean doinput)将此 URLConnection 的 doInput 字段的值设置为指定的值。    
  2. URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。  
  3. public void setDoOutput(boolean dooutput)将此 URLConnection 的 doOutput 字段的值设置为指定的值。    
  4. URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。    
  5.   
  6. api上说的很清楚了,楼主不确定是可以先查下java api文档  

http://topic.csdn.net/u/20111125/10/759e26ce-d4d8-4c4e-929e-684a4562c3d9.html?326510160


———————————————————————————————————————————————————

HttpURLConnection 具有完全的访问网络功能,可以取代HttpGet和HttpPost ,使用HttpURLConnection访问URL资源分为以下几步:

1. 使用java.net.URL 封装Http资源的URL,通过openConnection()获得HttpUrlConnection对象

2.  设置请求方法,setRequestMethod(String str),str必须是大写,如GET,POST

3.  设置输入输出及其他权限

4.  设置HTTP请求头

5.  输入和输出数据

6.  关闭输入输出流

相应代码如下:

1.   URL url =  new URL(http://www.blogjava.net/archive/2009/12/14/305890.html);

      HttpURLConnection  httpurlConnection =  (HttpURLConnection)url.openConnection();

2.  httpurlConnection.setRequestMethod("POST");

3.  // 下载HTTP资源,需要将setDoInput()的参数设为true

     httpurlConnection.setDoInput();               // 设置为可读取, 用于下载

     //上传数据,需要将setDoOutput的参数设为true

     httpurlConnection.setDoOutput(true);      // 设置为可写入,  用于上传

4.  httpurlConnection.setRequestProperty("Charset","UTF-8"); // 设置Charset 请求头的值为UTF-8

5.  InputStream  is = httpurlConnection.getInputStream();

    OutputStream os = httpurlConnection.getOutputStream();

6.  is.close();

     os.close(); 

以下是一个 上传文件 的示例

基本原理:先定义好写入流,再读取文件(根据文件名参数),再写到服务器上

具体代码参见my_upload、ch09_uploadfile工程,运行时先启动my_upload服务器端


0 0
原创粉丝点击