添加网址参数似乎有点麻烦,而且似乎无法为任何类型的请求添加正文。
有时,我需要在DELETE,GET,PUT请求中添加一个正文(就像在POST请求中一样)。尽管我非常喜欢Volley,但我觉得它并不像许多人想的那样松散。为了坚持这一点,该公司不得不改变我们的后端编写方式。
是否有一种简单的方法可以将体添加到任何类型的方法中。可以理解,但如果不是,也会感到沮丧。
此外,是否有一种简单的方法可以从HashMap或JSONObject中添加URL Params?
最近,我发现自己这样做了:
StringBuilder buildUrl = new StringBuilder(BASE_URL);
buildUrl.append("items")
.append("/")
.append(item.getId())
.append("/")
.append("edit.json")
.append("?")
.append("user_id=")
.append(params.optString("user_id"))
.append("&")
.append("auth_token")
.append(params.optString("auth_token"));
然后使用该String作为URL。 Volley有更简单的方法吗?如果没有,我只是为它做一个自己的功能。
答案 0 :(得分:0)
您当然可以在JSONObject请求中添加正文。
根据docs:
JsonObjectRequest - 在给定URL处检索JSONObject响应主体的请求,允许将可选的JSONObject作为请求主体的一部分传入。
我只用POST尝试过,所以不能评论其他HTTP方法 - 让我知道你发现了什么。我是这样做的:
JSONObject listItemData = new JSONObject();
try {
// Do what you're gonna do
} catch (JSONException e) {
e.printStackTrace();
}
然后将其传递给您的请求:
JsonObjectRequest createItemRequest = new JsonObjectRequest(Request.Method.POST, CreateItemUrl, listItemData,
new Response.Listener....
//.....
)