我使用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"));
答案 0 :(得分:8)
它有点隐藏,但AjaxCallback有一个私有method
字段(和相应的setter)用于确定要使用的HTTP方法。默认情况下,它使用METHOD_DETECT
,它会尝试找出要使用的内容,当您添加参数时,它会认为它是一个POST。
所以,而不是:
.header("_method", "PUT"));
使用
.method(AQuery.METHOD_PUT)
答案 1 :(得分:-4)
AndroidQuery一般不支持PUT和DELETE请求。 :(伤心。