当前位置:编程学习 > wap >>

HttpURLConnection的setRequestProperty函数的作用

在android上实现了POST请求,成功上传给服务器一张图片。虽然我代码中没有用到setRequestProperty这个函数,但是不知道它的作用是什么?
代码如下:
URL url = new URL(
"http://192.168.191.104:8080/myapp/servlet/MyServlet");
HttpURLConnection connection = ((HttpURLConnection) url
.openConnection());
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestMethod("POST");
connection.connect();
OutputStream out = connection.getOutputStream();

int len;
byte[] buffer = new byte[1024];
// 读取文件
FileInputStream fileInputStream = new FileInputStream(
Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ "/123.jpg");
while((len = fileInputStream.read(buffer, 0, 1024)) != -1){

out.write(buffer);
}

out.flush();
out.close();
fileInputStream.close();

InputStream input = connection.getInputStream();
while ((len = input.read(buffer)) != -1) {
Log.i("tag", "data:"
+ new String(buffer, 0, len));
}
input.close();
connection.disconnect();
--------------------编程问答-------------------- 服务器的代码如下:

ServletInputStream inputStream = ((ServletRequest) request)
.getInputStream();
int len, offset, count;
count = offset = 0;
byte[] buffer = new byte[1024];

try {
FileOutputStream outputStream = new FileOutputStream("D:\\123.jpg");
while ((len = inputStream.readLine(buffer, 0, 1024)) != -1) {
offset += len;
outputStream.write(buffer, 0, len);
}
outputStream.flush();
outputStream.close();
} catch (Exception e) {
System.out.println(e.toString());
}

PrintWriter out = response.getWriter();
out.println("ok");


--------------------编程问答-------------------- setRequestProperty主要是设置HttpURLConnection请求头里面的属性
比如Cookie、User-Agent(浏览器类型)等等,具体可以看HTTP头相关的材料
至于要设置什么这个要看服务器端的约定 --------------------编程问答-------------------- 设置头信息的,比如格式,UA等,不设置自然有默认的,一般的请求倒不需要去设置,可以去看看android里的DefaultHttpClient里也有设置头信息的 --------------------编程问答-------------------- setRequestProperty 主要是用来设置下面的功能
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

或者
Connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");

有时候你需要给 connection 指定 Content-type。




 



--------------------编程问答-------------------- 恩,3楼正解吧~ --------------------编程问答-------------------- 请问楼主,如何设置HTTP头    版本为HTTP2.0 ??? 急!qq:348224249
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,