指尖上的行者 2015-05-28 09:51 采纳率: 50%
浏览 2539
已结题

使用volley进行post请求,参数中无故多出&

使用volley进行post请求,C#在接收到的时候参数中多了个&,源码如下:

 RequestQueue requestQueue = Volley.newRequestQueue(this);
        StringRequest postRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        // 处理返回的JSON数据
                        Log.d("Response", response);
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e("Response", error.getMessage(), error);
                    }
                }) {
            @Override
            protected Map<String, String> getParams() {
                // POST 参数
                Map<String, String> params = new HashMap<String, String>();
                params.put("action", action);
                // 本机号码
                params.put("Mobile", getNativePhoneNumber());
                params.put("Message", message);
                params.put("SendPhone", from);
                return params;
            }

C#接收到的参数在SendPhone的值后面却多了个“&”!

请问这是怎么回事呢?

  • 写回答

1条回答 默认 最新

  • 江清清 2015-11-13 06:49
    关注

    /**
    * Converts params into an application/x-www-form-urlencoded encoded string.
    */
    private byte[] encodeParameters(Map params, String paramsEncoding) {
    StringBuilder encodedParams = new StringBuilder();
    try {
    for (Map.Entry entry : params.entrySet()) {
    encodedParams.append(URLEncoder.encode(entry.getKey(), paramsEncoding));
    encodedParams.append('=');
    encodedParams.append(URLEncoder.encode(entry.getValue(), paramsEncoding));
    encodedParams.append('&');
    }
    return encodedParams.toString().getBytes(paramsEncoding);
    } catch (UnsupportedEncodingException uee) {
    throw new RuntimeException("Encoding not supported: " + paramsEncoding, uee);
    }
    }
    看最后Volley进行参数封装的时候 最后一个&字符没有去除

    评论

报告相同问题?

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备