zoukankan      html  css  js  c++  java
  • android 发送GET请求 服务端接收乱码的问题

    在android的编程中常会使用get/post请求,在用get请求的时候数据是直接放在url当中的

    例如:

    http://apicloud.mob.com/v1/weather/query?key=11bef58799140&city=南京

    但是在android客户端这样写是拿不到正确的返回数据的。

    原因是这样,通过浏览器向服务器发送get请求的时候默认的格式是 iso-8859-1

    通过浏览器发送带有中文的个头请求:

    http://apicloud.mob.com/v1/weather/query?key=11bef58799140&city=%E5%8D%97%E4%BA%AC

    这里的

    %E5%8D%97%E4%BA%AC 就是转码后的 南京

    那么客户端向服务器发送get请求的时候如何将数据转码呢?

    这里就会用到 URLEncoder.encode( s , String )

    该方法包含两个参数:第一个参数:  是需要转码的文字(String 类型)

              第二个参数:  是要转成的格式 例如utf-8(String 类型)

    这是官方api的用法

    public static String encode (String s)
    
    Added in API level 1
    This method was deprecated in API level 1.
    Use encode(String, String) instead.
    
    Equivalent to encode(s, "UTF-8").

    该方法在使用时需要try catch 捕获异常;

     
     String city = "南京";
            try {
                city = URLEncoder.encode(city , "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
  • 相关阅读:
    逆元应用求组合数
    树的重心入门
    扫描线求面积的并,交
    涂抹果酱
    牧场的安排
    「SCOI2005」互不侵犯
    Network Coverage
    Linux命令传输文件
    VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Device/Credenti
    Springboot开启SpringSecurity
  • 原文地址:https://www.cnblogs.com/wobeinianqing/p/5401711.html
Copyright © 2011-2022 走看看