首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将Base64与JSONObject一起发送到服务器(ANDROID)

将Base64与JSONObject一起发送到服务器(ANDROID)
EN

Stack Overflow用户
提问于 2017-07-23 02:45:10
回答 3查看 3.1K关注 0票数 1

当我将图像编码到基本64并试图通过JSON发送图像时,我想我得到了一个奇怪的编码错误。

我对以位图开头的照片进行编码,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            photo.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
            byte[] byteArray = byteArrayOutputStream .toByteArray();
            encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);

而i在json上发送“编码”字符串。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 JSONObject postDataParams = new JSONObject();

        postDataParams.put(ArchivoTexto, encoded);

现在,我看到的问题是,当我发送JSON时,控制台表示它发送的编码字符串如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wB

但是,如果我将“编码”字符串复制到剪贴板上,则如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/9j/4AAQSkZJRgABAQAAAQABAAD/2wB 

反斜杠消失了,如果我使用一个网站来解码来自剪贴板的字符串,它就成功地解码了图像,但是当我通过JSON将字符串发送到服务器时,它看起来就坏了,所以我怀疑反斜杠使它破裂。

我的问题是,在将字符串发送到JSON上之前,我应该寻找一种删除反斜杠的方法,还是服务器不能正确解释字符串的错误?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-08 07:25:41

在PHP文件中这样做

  1. 从已发布的数据(base64)中生成Json字符串,并删除"\n“字符(以避免该字符)
  2. 解码该JSON字符串以删除该JSON字符
  3. 得到解码的字符串

这是我的工作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$img_base64 = $_POST['ArchivoTexto'];
$sdata = '{"val" : "'.sub_str("\n","",$img_base64).'"}';

$ddata = json_decode($sdata);

$jdata = $ddata->val;//$jdata contain the clear base64 String
票数 1
EN

Stack Overflow用户

发布于 2017-07-23 03:32:49

将位图转换为base64字符串

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static String getBase64Image(Bitmap bmp) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] imageBytes = baos.toByteArray();
    return Base64.encodeToString(imageBytes, Base64.DEFAULT);
}

然后用这种方式将\n替换为"“

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String Base64Photo = getBase64Image(decodeFile(bitmap)).replace("\n", "");
票数 1
EN

Stack Overflow用户

发布于 2017-07-23 03:02:46

--您正在发送编码的字符串,就像将它放入JSONObject中一样--不要这样做,这可能是产生反斜杠的原因。

I建议使用Volley将图像发送到Server.

private void uploadImage() {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            //Do something with response
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
        }
    }
    ) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            HashMap<String, String> hashMap = new HashMap<>();
            hashMap.put("image",imageToString(mBitmap)); //passing bitmap for converting into String
            return hashMap;
        }
    };
    mRequestQueue.addToRequestQueue(stringRequest);  //mRequestQueue is from Volley
}

private String imageToString(Bitmap bitmap) {

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
    byte[] imgBytes = byteArrayOutputStream.toByteArray();
    return Base64.encodeToString(imgBytes, Base64.DEFAULT);

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45264184

复制
相关文章
shell脚本实际运用_shell脚本调用另一个脚本
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168438.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
9980
在 Shell 脚本中调用另一个 Shell 脚本的三种方式
fork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调用 foo.sh 这个脚本,比如如果是 foo.sh 在当前目录下,就是 ./foo.sh。运行的时候 terminal 会新开一个子 Shell 执行脚本 foo.sh,子 Shell 执行的时候, 父 Shell 还在。子 Shell 执行完毕后返回父 Shell。 子 Shell 从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回父 Shell。
用户1558438
2018/08/23
4.4K0
在 Shell 脚本中调用另一个 Shell 脚本的三种方式
fork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调用foo.sh 这个脚本,比如如果是 foo.sh 在当前目录下,就是 ./foo.sh。运行的时候 terminal 会新开一个子 Shell 执行脚本 foo.sh,子 Shell 执行的时候, 父 Shell 还在。子 Shell 执行完毕后返回父 Shell。子 Shell 从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回父 Shell。
IT运维技术圈
2022/10/24
3.5K0
Shell脚本调用另一个脚本的三种方法
如何在其它Shell脚本中调用first.sh呢?主要有三种方法:source、点号以及sh命令。
恋喵大鲤鱼
2019/03/05
12.2K0
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR?
程序熵
2023/09/25
1800
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
我可以在一个构造函数中调用另一个构造函数么
但在 C++11 版本之前是不可以的,不过你可以通过两种方式来模拟实现(可以参见 the C++ FAQ entry),
ClearSeve
2022/02/10
3K0
Python 制作按键触发Windows通知的脚本
对于键盘没有背光灯的同学而言,切换大小写或控制Num键开关的时候没有提示,经常需要试探性地输入一些字符来判断开关是否打开,体验非常糟糕。
abs_zero
2020/12/15
1.8K0
Python 制作按键触发Windows通知的脚本
Shell脚本——函数
调用 Shell 函数时可以给它传递参数,也可以不传递。如果不传递参数,直接给出函数名字即可:
栗筝i
2022/12/01
4280
shell脚本-函数
https://www.cnblogs.com/shenxm/category/1154724.html shell脚本-函数 函数介绍 函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell 程序的一部分。 函数和shell程序比较相似,区别在于: Shell 程序在子Shell中运行 而Shell函数在当前Shell中运行。因
菲宇
2022/12/21
5790
脚本接入钉钉Actions自动触发
最近出来实习一直在忙公司的事情。学校那边说,为了我们的安全让每天签到。那个app叫蘑菇丁。不知道大🔥用过没,貌似很小众。以前的脚本写的惨不忍睹,近期看到国光哥的 Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)发现脚本可以用钉钉通知涨姿势了。还发现Github 自带的 Actions 可以定时执行脚本,正好vps要到期了。。。。所以就改造了下自己的脚本。 接入钉钉 点击头像进入详情,自定义机器人。这时候需要创建一个群组 创建后会得到一个webhook地址 https://oapi.di
用户2700375
2022/06/09
8980
脚本接入钉钉Actions自动触发
复制查到到的文件到另一个目录(shell脚本)
Test:find ../../res.bak/item/ -type f -name "*.jpg" |xargs -n1 -i echo {}."abc"
meteoric
2018/11/16
1.4K0
【shell脚本】$ 在shell脚本中的使用
注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
码缘
2019/07/01
6.2K0
jenkins自动触发构建_jenkins调用bat脚本
跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 jenkins的定时任务是用的crontab语法
全栈程序员站长
2022/09/19
1.2K0
jenkins自动触发构建_jenkins调用bat脚本
在ClickHouse中自定义脚本函数
在先前的一篇文章中我曾介绍过,如何在 ClickHouse 中用 SQL 创建 UDF 自定义函数 ,《传送门》在此。
Nauu
2022/03/29
4.3K0
Shell脚本,你会吗?
5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。
kubernetes中文社区
2019/07/23
7540
【Groovy】Groovy 脚本调用 ( Linux 中调用 Groovy 脚本 | Windows 中调用 Groovy 脚本 )
在 命令行 , Groovy 脚本 , Groovy 类 , Java 类中 , 可以调用 Groovy 脚本 ;
韩曙亮
2023/03/30
2K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )
在 【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 ) 博客中 , 已经分析了 Groovy 脚本的本质 , Groovy 脚本继承了 groovy.lang.Script 类 ;
韩曙亮
2023/03/30
1.9K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )
java构造函数调用另一个构造函数_java中的构造函数
* 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法
用户7886150
2021/04/29
4.5K0
python挖矿脚本代码_一个挖矿脚本
遇到一台机器偶尔cpu使用率达到80%,触发告警。登录查看后一个sshd2程序导致cpu负载高
全栈程序员站长
2022/09/14
2.3K0
[golang]写了一个可以用 go 来写脚本的工具:gosl
代码和使用说明可以看这里: http://github.com/daviddengcn/gosl
landv
2019/09/30
2K0

相似问题

我可以从另一个shell脚本调用shell脚本的函数吗?

76

可以在页面脚本之前触发扩展脚本吗?

11

可以从另一个脚本调用php脚本吗?

11

Python脚本触发另一个脚本中的方法

31

可以从另一个python脚本中运行python脚本吗?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文