您的位置:首页 > 理论基础 > 计算机网络

Android HttpClient上传文件(亲测,成功)

2014-04-18 13:33 183 查看
Android HttpClient上传文件  的一个封装方法。里面有一小段代码是处理获取JSON格式数据


System.out.println("executing request " + httppost.getRequestLine()); 返回协议和返回码

正确的话是 http 1.1 200

System.out.println(EntityUtils.toString(resEntity,"utf-8"));

获取处理后的页面内容

android并不自带MultipartEntity吧?

对的。把httpmime-4.1.1.jar 这个放进lib中就可以使用 MultipartEntity了

下载地址:http://pan.baidu.com/share/link?shareid=90009&uk=4012369003

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 = "http://192.168.1.88/test/upload.php";

HttpPost httppost = new HttpPost(urlServer);
File file = new File(pathToOurFile);

MultipartEntity mpEntity = new MultipartEntity(); //文件传输
ContentBody cbFile = new FileBody(file);
mpEntity.addPart("userfile", cbFile); // <input type="file" name="userfile" />  对应的

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: