gpt4 book ai didi

android - 为 URI 使用编码图像

转载 作者:行者123 更新时间:2023-11-30 02:37:57 25 4
gpt4 key购买 nike

我正忙于开发一个小型 Android 应用程序。该应用程序使用 restful 连接到 WCF,后者又连接到数据库。该应用程序确实有效。现在我想将图像发送到数据库。

[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)base64编码后,将所有的/替换为_,对url有效,没有特定的预赋意义,base64不使用。在服务器端,您应用相反的替换;

2) 这比选项 1 更直接,您可以使用 put 或 post 而不是 get。

关于android - 为 URI 使用编码图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com