1
我忙於一個小型的android應用程序。應用程序使用restful連接到WCF,然後連接到數據庫。該應用程序確實有效。現在我想將圖像發送到數據庫。使用URI編碼圖像
[OperationContract]
[WebGet(UriTemplate = "sendImage/{seq}", ResponseFormat = WebMessageFormat.Json)]
string sendImage(string seq);
在Android應用程序中,我使用BASE64對圖像進行了編碼。
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
TextView textView = (TextView) findViewById(R.id.defaults);
textView.setText(encodedImage);
此加密確實有效。問題是我現在要發送字符串encodedImage
到WCF寫入數據庫。因此該字符串在URI中傳遞。
"htp://_____.__/serv/ManagementSystem.svc/sendImage/" + encodedImage
問題是我從編碼中得到的字符串包含/
個字符。
/9J/DASDFkFASDF/.....
這導致URI一個問題,因爲它拿起/
作爲參數的變化,從而拾取,它不是一個有效的請求。有沒有辦法在不影響解碼的情況下移除/
或者有沒有更好的方法將圖像轉換爲字符串並返回到圖像?
謝謝,我沒有想到做選項二。比選項1的開銷少。 – Jonathan 2014-10-05 16:00:50