在google瀏覽器工具-更多工具-開發者工具-network裏查看上傳的內容
------WebKitFormBoundary1GAvF0XBUCSbyKkj
Content-Disposition: form-data; name="file"; filename="ceshi.png"
Content-Type: image/png
------WebKitFormBoundary1GAvF0XBUCSbyKkj
Content-Disposition: form-data; name="submit"
Submit
------WebKitFormBoundary1GAvF0XBUCSbyKkj--
圖片上傳就是拼接這串紅色內容已二進制提交就ok了
class A extends Request<T>{
@Override
public byte[] getBody() throws AuthFailureError {if (mListItem == null||mListItem.size() == 0){
return super.getBody() ;
}
ByteArrayOutputStream bos = new ByteArrayOutputStream() ;
FormImage formImage ;
//此處爲拼接過程很重要
for (int i = 0; i < mListItem.size() ;i++){formImage = mListItem.get(i) ;
StringBuffer sb= new StringBuffer() ;
/*第一行*/
//`"--" + BOUNDARY + "\r\n"`
sb.append("--"+BOUNDARY);
sb.append("\r\n") ;
/*第二行*/
//Content-Disposition: form-data; name="參數的名稱"; filename="上傳的文件名" + "\r\n"
sb.append("Content-Disposition: form-data;");
sb.append(" name=\"");
sb.append(formImage.getName()) ;
sb.append("\"") ;
sb.append("; filename=\"") ;
sb.append(formImage.getFileName()) ;
sb.append("\"");
sb.append("\r\n") ;
/*第三行*/
//Content-Type: 文件的 mime 類型 + "\r\n"
sb.append("Content-Type: ");
sb.append(formImage.getMime()) ;
sb.append("\r\n") ;
/*第四行*/
//"\r\n"
sb.append("\r\n") ;
try {
bos.write(sb.toString().getBytes("utf-8"));
/*第五行*/
//文件的二進制數據 + "\r\n"
bos.write(formImage.getValue());
bos.write("\r\n".getBytes("utf-8"));
} catch (IOException e) {
e.printStackTrace();
}
}
/*結尾行*/
//`"--" + BOUNDARY + "--" + "\r\n"`
String endLine = "--" + BOUNDARY + "--" + "\r\n" ;
try {
bos.write(endLine.toString().getBytes("utf-8"));
} catch (IOException e) {
e.printStackTrace();
}
return bos.toByteArray();
}
@Override
public String getBodyContentType() {
return MULTIPART_FORM_DATA+"; boundary="+BOUNDARY;
}
}
剩下的與vollery創建過程一樣就不在敘述了