Android Volley - 使身体和网址参数POST - 同时getParams和getBody
问题描述:
我有简单的问题调用POST和哪种方法调用GET。Android Volley - 使身体和网址参数POST - 同时getParams和getBody
这是我的简单的类:
public class CustomStringRequest extends Request<CustomNetworkResponse> {
private final Map<String, String> headers;
private final Map<String, String> params;
private final String body;
private final Response.Listener<CustomNetworkResponse> listener;
public CustomStringRequest(int method,
String url,
Map<String, String> headers,
Map<String, String> params,
String body,
Response.Listener<CustomNetworkResponse> listener,
Response.ErrorListener errorListener) {
super(method, url, errorListener);
this.headers = headers;
this.params = params;
this.body = body;
this.listener = listener;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return headers != null ? headers : super.getHeaders();
}
@Override
public Map<String, String> getParams() {
return params;
}
@Override
public byte[] getBody() throws AuthFailureError {
return body != null ? body.getBytes() : null;
}
如何,我可以在同一时间使用getParams()方法和getBody()?有没有可能,因为当我检查超级实现时,我认为这是不可能的。
我也注释了方法getBody()来看看那是真的。
这是否意味着我不能发送身体和网址参数POST? URL参数是否意味着用于GET请求?这是标准吗?
答
那么我不知道你的意图是什么!您可以随时在url中添加url参数(如果参数很简单)。然后您可以使用getParams()
或getBody()
来传递更复杂的参数。
我认为这两者之间的区别在于它们通过网络传输时的参数编码(尽管我对此并不是100%确定),但是。 getBody()
更安全。
我觉得它们是一样的,因为getParams在默认getBody中调用了 – BNK
@BNK,好像是。这对我来说很奇怪,没有创建UrlParametrs的方法(以及它的废弃......但我仍然认为它不能用作UrlParams)。或者我错过了一些东西,有一种方法呢? – 5er
你的意思是GET请求的url中的参数? – BNK