利用CustomMultipartEntity附加的内容;
按照网上的指示,为httppost设置编码,new FileBody时转码,统统不好使!
真心求助!!
核心代码如下:
@Override
protected String doInBackground(String... params) {
String serverResponse = null;
HttpClient httpClient = new DefaultHttpClient();
HttpContext httpContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(url);
try {
ProgressListener listenner = new ProgressListener() {
@Override
public void transferred(long num) {
publishProgress((int) ((num / (float) totalSize) * 100));
}
};
CustomMultipartEntity multipartContent = new CustomMultipartEntity(listenner);
// We use FileBody to transfer an image
if (paraMap != null && !paraMap.isEmpty()) {
for (Map.Entry<String, String> entry : paraMap.entrySet()) {
multipartContent.addPart(entry.getKey(), new StringBody(entry.getValue()));
}
}
multipartContent.addPart("data", new FileBody(file,HTTP.UTF_8));
totalSize = multipartContent.getContentLength();
// Send it
httpPost.setEntity(multipartContent);
HttpResponse response = httpClient.execute(httpPost);
serverResponse = EntityUtils.toString(response.getEntity());
JSONObject jsons = new JSONObject(serverResponse);
zid = jsons.optString("zid");
filepath = jsons.optString("filepath");
guid = jsons.optString("guid");
//file.delete();
} catch (Exception e) {
e.printStackTrace();
}
return serverResponse;
}