在手機上提交使用者資料資訊(如需要頭像、暱稱),或者提交一個商品資訊(商品圖片和標籤),或者共用一個圖片到伺服器上。
我們都需要同時處理檔案上傳和一般類型資料的提交。
這個在web應用中很常見也很簡單。行動裝置 App可以類比web頁面提交一個HTTP POST請求,其中Content-type為multipart/form-data。
具體程式碼範例如下:
HttpClient httpClient = new DefaultHttpClient(); HttpPost postRequest = new HttpPost("http://open.ixinjiekou.com/apis/v1/dealers.json"); MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); reqEntity.addPart("name", new StringBody("test1")); reqEntity.addPart("tags", new StringBody("tag1,tag2")); reqEntity.addPart("phone",new StringBody("50007777")); try{ ByteArrayOutputStream bos = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.JPEG, 75, bos); byte[] data = bos.toByteArray(); ByteArrayBody bab = new ByteArrayBody(data, "kfc.jpg"); reqEntity.addPart("image", bab); } catch(Exception e){ reqEntity.addPart("image", new StringBody("image error")); } postRequest.setEntity(reqEntity); HttpResponse response = httpClient.execute(postRequest); BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); String sResponse; StringBuilder s = new StringBuilder(); while ((sResponse = reader.readLine()) != null) { s = s.append(sResponse); }
iefreer