手写app学习笔记(一)

利用第三方包:httpclient,json,photoview,base64encoder;

利用base64转码得到字符串:

/**
	 * 将文件转码为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 pairs = new ArrayList();
			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);






你可能感兴趣的:(android学习笔记,base64,json,app,服务器)