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

Android DefaultHttpClient 上传文件

2016-06-06 15:29 471 查看
需要依赖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);
}

}

}


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