Http的Get/Post请求带有特殊字符,400 Bad Request解决方案

Http的Get/Post请求带有特殊字符,400 Bad Request解决方案
今天做项目的时候,需要向服务器接口 传递 json参数,使用 apache 的 httpclient,当时没有对参数做特殊处理直接提交了,结果运行时报错了,如下:

HTTP 400 Bad Request

后来在网上查资料找到原因了:HttpGet或 HttpPost都不能传包含 ” 、“{“、”}”这样的参数,需要对特殊字符进行转义,把 ” 转成%22,把 { 转成%7b,把 } 转成%7d

        MsgResult msgResult = new MsgResult(1,"成功","我是正文内容"); 

        Gson gson = new Gson(); 

        String gsonStr = gson.toJson(msgResult); 

        //特殊字符进行转义  

        gsonStr = gsonStr.replace("\"", "%22") 

                .replace("{", "%7b").replace("}", "%7d"); 

        Observable observable = webService_tomcat.insertJsonString(MethodName_MainHome,gsonStr); 

        observable.subscribeOn(Schedulers.io()) 

                .unsubscribeOn(Schedulers.io()) 

                .observeOn(AndroidSchedulers.mainThread()) 

                .subscribe(observer); 


 
 

    注意:参数里面如果有 空格的话,也需要转义,否则会有问题。

    • 1
      点赞
    • 3
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值