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>