Android DefaultHttpClient 上传文件

来源:互联网 发布:windows禁用icmp重定向 编辑:程序博客网 时间:2024/05/16 19:41



需要依赖httpmime.jar


public class HttpText {public static void UseVolleyForHttps(Context context) {try {String path = "http://192.168.0.102:8080/myweb/der";BasicHttpParams params = new BasicHttpParams();HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);HttpProtocolParams.setContentCharset(params,HTTP.DEFAULT_CONTENT_CHARSET);HttpProtocolParams.setUseExpectContinue(params, true);SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier());SchemeRegistry schReg = new SchemeRegistry();schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));// 出错:因为使用了不被系统承认的自定义证书:No peer certificate 。// schReg.register(new// Scheme("https",SSLSocketFactory.getSocketFactory(), 443));schReg.register(new Scheme("https", SSLTrustAllSocketFactory.getSocketFactory(), 443));ClientConnectionManager connMgr = new ThreadSafeClientConnManager(params, schReg);DefaultHttpClient client = new DefaultHttpClient(connMgr, params);org.apache.http.entity.mime.MultipartEntity s = new org.apache.http.entity.mime.MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);// 测试文件File file = new File(context.getCacheDir(), "jt.txt");if (!file.exists()) {file.createNewFile();}FileWriter w = new FileWriter(file);w.write("橘子面包");w.flush();s.addPart(new FormBodyPart("title", new StringBody("juntao")));s.addPart("file", new FileBody(file, "text/plain"));HttpPost post = new HttpPost(path);post.setEntity(s);HttpResponse httpResponse = client.execute(post);int responseCode = httpResponse.getStatusLine().getStatusCode();String message = httpResponse.getStatusLine().getReasonPhrase();HttpEntity entity = httpResponse.getEntity();if(responseCode==200){Log.e("成功", "succee");}} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


服务器端:

/** * Servlet implementation class NesServlet */@WebServlet("/der")public class FormServlet extends HttpServlet {/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse *      response) */protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse *      response) */protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {System.out.print("上传中\n");System.out.print("查看参数\n------------------------\n");boolean isMultipart = ServletFileUpload.isMultipartContent(request);if (isMultipart) {try {FileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);upload.setHeaderEncoding("UTF-8");List<FileItem> items = upload.parseRequest(request);//String dir = request.getSession().getServletContext()//.getRealPath("/files");File dirFile = new File("E:/uploder");if (!dirFile.exists()) {dirFile.mkdirs();}for (FileItem item : items) {if (item.isFormField()) {String name = item.getFieldName();String values = item.getString("UTF-8");System.out.print("属性="+ name+"\n");System.out.print("值="+values+"\n");} else {System.out.print("有文件");File saveFile = new File("E:/uploder", item.getName());item.write(saveFile);}}} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {doGet(request, response);}}}






0 0