上传文件之至客户端处理http请求
Android客户端主要代码:
public ImageHttp(Context context) { super(context); filePath = context.getCacheDir().getAbsolutePath(); } public void uploadUserImg(Bitmap bitmap, IHttpSenderCallBack<String> callback) { this.callback = callback; File file = getFile(bitmap); // 注意与服务端协商 if (file == null) { return; } List<Parameter> parameters = new ArrayList<Parameter>(); parameters.add(new Parameter("file", file)); uploadFile("uploadImg", parameters); } private File getFile(Bitmap bitmap) { File file = null; String path = filePath + "/image.jpg"; if (bitmap != null && !StringUtil.emptyOrNull(path)) { try { FileOutputStream out = new FileOutputStream(path); bitmap.compress(Bitmap.CompressFormat.JPEG, 60, out); out.flush(); out.close(); file = new File(path); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } return file; }
protected String uploadFile(String methodName, List<Parameter> parameter) { String errorMsg = ""; try { String serviceUrl = getPostUrl(methodName); HttpPost httpPost = new HttpPost(serviceUrl); //采用http4包,不需要再添加 multipart/form-data表单 ,切记,这儿耽搁了好久 MultipartEntity mpEntity = new MultipartEntity( HttpMultipartMode.BROWSER_COMPATIBLE); // 文件传输 if (parameter != null && !parameter.isEmpty()) { for (int i = 0; i < parameter.size(); i++) { Parameter p = parameter.get(i); if ("file".equals(p.getKey())) { mpEntity.addPart(p.getKey(), new FileBody(((File) p.getValue()))); } else { mpEntity.addPart(p.getKey(), new StringBody(p .getValue().toString())); } } httpPost.setEntity(mpEntity); } HttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter( CoreConnectionPNames.CONNECTION_TIMEOUT, TIMEOUT); httpclient.getParams().setParameter( CoreConnectionPNames.SO_TIMEOUT, TIMEOUT); HttpResponse httpResponse = httpclient.execute(httpPost); String result = ""; int status = httpResponse.getStatusLine().getStatusCode(); LogUtil.d("httpResponseCode--------->" + status); if (status == HttpStatus.SC_OK) { result = EntityUtils.toString(httpResponse.getEntity()); } parseProperty_(result, methodName); result = ""; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return errorMsg; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。