您的位置:首页 > 移动开发

手写app学习笔记(一)

2015-09-12 15:59 288 查看
利用第三方包:httpclient,json,photoview,base64encoder;

利用base64转码得到字符串:

<pre name="code" class="java">/**
* 将文件转码为base64字符串
*
* @param file
* @return
* @throws IOException
*/
private String encodeBase64File(File file) {
FileInputStream fis = null;
byte[] buffer = null;
try {
fis = new FileInputStream(file);
buffer = new byte[(int) file.length()];
fis.read(buffer);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return new BASE64Encoder().encode(buffer);
}



利用httpclient连接服务器传送并取得返回信息:

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);

NameValuePair pair1 = new BasicNameValuePair("filename", "name");
NameValuePair pair2 = new BasicNameValuePair("fileValue", encodeBase64File(file));
ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(pair1);
pairs.add(pair2);
try {
httpPost.setEntity(new UrlEncodedFormEntity(pairs));
HttpResponse httpResponse = httpClient.execute(httpPost);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
JSONObject jsonObj = new JSONObject(getResultFromHttpResponse(httpResponse));
int resultCode = jsonObj.getInt("status");
// TODO 对于回馈做出反应
Log.i("resultStatus", "resultStatus:" + resultCode);
}利用时间生成文件名:
// 利用时间生成文件名

Calendar c = Calendar.getInstance();
String name = "" + c.get(Calendar.YEAR) + c.get(Calendar.MONTH) + c.get(Calendar.DAY_OF_MONTH)
+ c.get(Calendar.HOUR_OF_DAY) + c.get(Calendar.MINUTE) + c.get(Calendar.SECOND) + ".png";
Log.i("文件名", name);
// 保存文件
File file = new File(Environment.getExternalStorageDirectory(), name);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  base64 json app 服务器