Android DefaultHttpClient 上传文件



需要依赖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 block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.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 block
				e.printStackTrace();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} else {
			doGet(request, response);
		}

	}

}






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值