指尖上的行者 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进行参数封装的时候 最后一个&字符没有去除

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大