07-08 10:18:40.743: W/System.err(32269): java.lang.NumberFormatException: Invalid int: ""
07-08 10:18:40.763: W/System.err(32269): at java.lang.Integer.invalidInt(Integer.java:138)
07-08 10:18:40.763: W/System.err(32269): at java.lang.Integer.parseInt(Integer.java:359)
07-08 10:18:40.763: W/System.err(32269): at java.lang.Integer.parseInt(Integer.java:332)
07-08 10:18:40.763: W/System.err(32269): at java.util.Calendar.getHwFirstDayOfWeek(Calendar.java:807)
07-08 10:18:40.763: W/System.err(32269): at java.util.Calendar.(Calendar.java:745)
07-08 10:18:40.763: W/System.err(32269): at java.util.GregorianCalendar.(GregorianCalendar.java:338)
07-08 10:18:40.763: W/System.err(32269): at java.util.GregorianCalendar.(GregorianCalendar.java:314)
07-08 10:18:40.763: W/System.err(32269): at java.text.SimpleDateFormat.(SimpleDateFormat.java:378)
07-08 10:18:40.763: W/System.err(32269): at java.text.SimpleDateFormat.(SimpleDateFormat.java:368)
07-08 10:18:40.763: W/System.err(32269): at libcore.net.http.HttpDate$1.initialValue(HttpDate.java:38)
07-08 10:18:40.763: W/System.err(32269): at libcore.net.http.HttpDate$1.initialValue(HttpDate.java:36)
07-08 10:18:40.763: W/System.err(32269): at java.lang.ThreadLocal$Values.getAfterMiss(ThreadLocal.java:430)
07-08 10:18:40.763: W/System.err(32269): at java.lang.ThreadLocal.get(ThreadLocal.java:65)
07-08 10:18:40.763: W/System.err(32269): at libcore.net.http.HttpDate.parse(HttpDate.java:73)
07-08 10:18:40.773: W/System.err(32269): at libcore.net.http.ResponseHeaders.(ResponseHeaders.java:142)
07-08 10:18:40.773: W/System.err(32269): at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:547)
07-08 10:18:40.773: W/System.err(32269): at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:784)
07-08 10:18:40.773: W/System.err(32269): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
07-08 10:18:40.773: W/System.err(32269): at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:479)
07-08 10:18:40.773: W/System.err(32269): at com.example.uploadtest.UploadARMThread.post(UploadARMThread.java:132)
07-08 10:18:40.773: W/System.err(32269): at com.example.uploadtest.UploadARMThread.run(UploadARMThread.java:34)
以上错误发生在
int code = urlConn.getResponseCode();这一句
HttpURLConnection urlConn = null;
BufferedReader br = null;
try {
//新建url对象
URL url = new URL(actionUrl);
//通过HttpURLConnection对象,向网络地址发送请求
urlConn = (HttpURLConnection)url.openConnection();
//设置该连接允许读取
urlConn.setDoOutput(true);
//设置该连接允许写入
urlConn.setDoInput(true);
//设置不能适用缓存
urlConn.setUseCaches(false);
//设置连接超时时间
urlConn.setConnectTimeout(3000); //设置连接超时时间
//设置读取时间
urlConn.setReadTimeout(4000); //读取超时
//设置连接方法post
urlConn.setRequestMethod("POST");
//设置维持长连接
urlConn.setRequestProperty("connection", "Keep-Alive");
//设置文件字符集
urlConn.setRequestProperty("Charset", CHARSET);
//设置文件类型
urlConn.setRequestProperty("Content-Type", MUTIPART_FORMDATA+";boundary="+BOUNDARY);
/********************************************************************/
DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());
//构建表单数据
//String entryText = bulidFormText(params);
//dos.write(entryText.getBytes());
int index = 1;
StringBuffer sb = new StringBuffer("");
sb.append(PREFIX+BOUNDARY+LINEND)
.append("Content-Disposition: form-data;" +
" name=\""+"123456"+"\";" +
" filename=\""+"2222222"+"\""+LINEND)
.append("Content-Type:"+CONTENTTYPE+";" +
"charset="+CHARSET+LINEND)
.append(LINEND);
dos.write(sb.toString().getBytes());
FileInputStream fis = new FileInputStream(files);
byte[] buffer = new byte[10000];
int len = 0;
while ((len = fis.read(buffer)) != -1) {
dos.write(buffer, 0, len);
}
dos.write(LINEND.getBytes());
fis.close();
//请求的结束标志
byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINEND).getBytes();
dos.write(end_data);
dos.flush();
dos.close();
// 发送请求数据结束
//接收返回信息
int code = urlConn.getResponseCode();
if(code!=200){
urlConn.disconnect();
return code;
}else{
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String result = "";
String line = null;
while((line = br.readLine())!=null){
result += line;
}
Log.i(Constant.TAG, result);
if("true".equals(result)){
return 200;
}else{
return 500;
}
}
} catch (Exception e) {
e.printStackTrace();
Log.e(Constant.TAG, e.getMessage());
return -1;
}finally{
try {
if(br!=null){
br.close();
}
if(urlConn!=null){
urlConn.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
}
这段代码在一个Thread的Run()中执行, 不在主进程