Android二进制文件转码到Base64并通过Post进行提交
类似于Ruby,在上面调试成功后,将功能迁移到了Android应用上面。
import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import android.util.Base64; import android.util.Log; /** * TODO FIX Check the file length, it's long not int.This may lead the * problem. * * @param fileName * @param url * @return */ public static boolean httpPostBase64(String fileName, String url) { try { File file = new File(fileName); FileInputStream in = new FileInputStream(file); byte[] buffer = new byte[(int) file.length() + 100]; int length = in.read(buffer); String data = Base64.encodeToString(buffer, 0, length, Base64.DEFAULT); HttpPost httpRequest = new HttpPost(url); /* * NameValuePair实现请求参数的封装 */ List<NameValuePair> params = new LinkedList<NameValuePair>(); params.add(new BasicNameValuePair("data", data)); /* 添加请求参数到请求对象 */ httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); /* 发送请求并等待响应 */ HttpResponse httpResponse = new DefaultHttpClient() .execute(httpRequest); /* 若状态码为200 ok */ if (httpResponse.getStatusLine().getStatusCode() != 200) { Log.d("Code", httpResponse.getStatusLine().toString()); return false; } } catch (Exception e) { for(StackTraceElement s:e.getStackTrace()) Log.d("Exception",s.toString()); Log.d("Exception",e.getLocalizedMessage()); return false; } return true; }
相关推荐
pythonjw 2020-11-17
hedongli 2020-09-01
浪味仙 2020-08-17
IT兄弟团 2020-08-01
凉白开 2020-07-19
kjh00abc 2020-07-08
Skyline 2020-06-28
苦咖啡flask 2020-06-18
万物weiyi 2020-06-16
半纸药笺 2020-06-14
chenhaimeimeng 2020-06-13
JF0 2020-06-13
逍遥友 2020-06-02
kyelu 2020-06-02
northwindx 2020-05-31
tengyuan 2020-05-30
singer 2020-05-30
GreatZhou 2020-05-28
coolhty 2020-05-20