Android HttpClient上傳文件
Android HttpClient上傳文件 的一個封裝方法。里面有一小段代碼是處理獲取JSON格式數據
System.out.println("executing request " + httppost.getRequestLine()); 返回協議和返回碼
正確的話是 http 1.1 200
System.out.println(EntityUtils.toString(resEntity,"utf-8"));
獲取處理后的頁面內容
public String post(String pathToOurFile,String urlServer) throws ClientProtocolException, IOException, JSONException { HttpClient httpclient = new DefaultHttpClient(); //設置通信協議版本 httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);//File path= Environment.getExternalStorageDirectory(); //取得SD卡的路徑
//String pathToOurFile = path.getPath()+File.separator+"ak.txt"; //uploadfile //String urlServer = "
HttpPost httppost = new HttpPost(urlServer); File file = new File(pathToOurFile);
MultipartEntity mpEntity = new MultipartEntity(); //文件傳輸 ContentBody cbFile = new FileBody(file); mpEntity.addPart("userfile", cbFile); // 接受的文件名
httppost.setEntity(mpEntity); System.out.println("executing request " + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost); HttpEntity resEntity = response.getEntity();
System.out.println(response.getStatusLine());//通信Ok String json=""; String path=""; if (resEntity != null) { //System.out.println(EntityUtils.toString(resEntity,"utf-8")); json=EntityUtils.toString(resEntity,"utf-8"); JSONObject p=null; try{ p=new JSONObject(json); path=(String) p.get("path"); }catch(Exception e){ e.printStackTrace(); } } if (resEntity != null) { resEntity.consumeContent(); }
httpclient.getConnectionManager().shutdown(); return path; }</pre>