使用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的值后面却多了个“&”!

请问这是怎么回事呢?

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