GeX*_*GeX 4 android http request
我使用Android的AndroidQuery(AQuery)库,我需要使用StringEntity(某个字符串)实体创建PUT请求.
我的代码,出了什么问题?你的建议?我尝试使用没有".header("_ method","PUT")"
HttpEntity entity = null;
try {
entity = new StringEntity(stringData, HTTP.UTF_8);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Map<String, Object> params = new HashMap<String, Object>();
params.put(AQuery.POST_ENTITY, entity);
AQuery aq = new AQuery(this);
aq.progress(pDialog).ajax(url, params, String.class, new AjaxCallback<String>() {
@Override
public void callback(String url, String json, AjaxStatus status) {
if(status.getCode() == 200) {
} else {
}
}
}.header("Content-Type", "application/x-www-form-urlencoded")
.header("_method", "PUT"));
Run Code Online (Sandbox Code Playgroud)
它有点隐藏,但AjaxCallback有一个私有method字段(和相应的setter)用于确定要使用的HTTP方法.默认情况下,它使用METHOD_DETECT,它试图找出使用的内容,当你添加参数时,它会认为它是一个POST.
所以,而不是:
.header("_method", "PUT"));
Run Code Online (Sandbox Code Playgroud)
使用
.method(AQuery.METHOD_PUT)
Run Code Online (Sandbox Code Playgroud)
(参考:https://github.com/androidquery/androidquery/blob/master/src/com/androidquery/callback/AbstractAjaxCallback.java#L280)
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |