- httpUrlConnection.setDoOutput(true);以后就可以使用conn.getOutputStream().write()
- httpUrlConnection.setDoInput(true);以后就可以使用conn.getInputStream().read();
- get请求用不到conn.getOutputStream(),因为参数直接追加在地址后面,因此默认是false。
- post请求(比如:文件上传)需要往服务区传输大量的数据,这些数据是放在http的body里面的,因此需要在建立连接以后,往服务端写数据。
- 因为总是使用conn.getInputStream()获取服务端的响应,因此默认值是true。
- public void setDoInput(boolean doinput)将此 URLConnection 的 doInput 字段的值设置为指定的值。
- URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。
- public void setDoOutput(boolean dooutput)将此 URLConnection 的 doOutput 字段的值设置为指定的值。
- URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。
- 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服务器端