我想将以下字符串POST
到服务器并通过android volley接收JSONObject!该文档表示,对服务器的请求应采用下面给出的格式,其中 Content-Type
为 "application/x-www-form-urlencoded"
。我如何通过 volley 提出此请求?
{
Username=usr&Password=passwd&grant_type=passwd
}
提前致谢!
最佳答案
首先,您应该重写 getbody() 并在该函数中对您的参数进行编码...例如:
@Override
public byte[] getBody() {
Map<String, String> params = new HashMap<String, String>();
params.put("password", "yourpassword");
if (params != null && params.size() > 0) {
return encodeParameters(params, getParamsEncoding());
}
return null;
}
protected byte[] encodeParameters(Map<String, String> params, String paramsEncoding) {
StringBuilder encodedParams = new StringBuilder();
try {
for (Map.Entry<String, String> 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实际上已经实现了以下功能,并且它有效,对我来说它有效......希望这对你有帮助。
关于json - 发布字符串请求 Volley ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952424/