Android发送POST请求上传图片后台解析本地一片黑问题

POST请求字符’+’被自动替换’ ‘空格字符问题

问题描述

  • 前台安卓开发,后台C++开发(IDE:C++Builder)
  • 开发环境:Windows
  • 前台使用JSON,通过POST请求向后台发送图片数据:
    此图片数据通过Base64编码后打包成JSON数据格式,POST请求发给后台
  • 症状:
    后台收到前台Base64编码的图片数据大小正常,和前台发送的一致;
    Base64解码后写图片文件数据到本地,得到的图片一片黑;如下图:
    这里写图片描述

    刚开始博主确实以为自己后台这边解码数据,写本地图片文件有问题;博主用的是Base64第三方库;由于没有单独拿出来测试看,所有确实有点心慌。
    后来经单独测试,确实没问题;然后将测试的代码集成到项目中;结果还是写图片文件出现一片黑。因此怀疑是前台那边传过来的数据有问题;让前台自己测下自己编码和解码的数据是否正常。

问题原因:

1.附上URL链接,有可能是前台Base64编码的时候,标志位传参模式问题:
https://jingyan.baidu.com/article/1974b2898278b6f4b1f774fc.html?qq-pf-to=pcqq.c2c

2.urlencode 空格变 +号,urldecode +号变空格,HTTP的POST协议传递数据时自动url编码,接收后自动解码+号解码成空格了。

解决方法:

前台切实有Base64编码传参问题;改了之后图片还是一片黑;最好博主后台直接将前台传过来的Base64编码数据写到TXT文本中;放到图片在线转码Base64中查看,发现是无效的图片。说明传过来编码数据本身是有问题的。最后通过TXT数据和前台数据对比分析,才发现是’+’被转换成了’空格’。通过百度HTTP的POST;发现url的编码和解码会出现字符’+’和空格字符的转化问题。

最后博主将传过来的数据中的所有空格字符都替换成’+’号字符;问题解决;写本地图片文件显示正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值