我正在将应用程序从 BB10 移植到 Android。对于 http 请求,我使用 AQuery。
在 BB10 上的 Qt 中,我可以简单地发布数据:
QByteArray data = "test";
QNetworkRequest request;
request.setUrl(new QUrl("example.com"));
QNetworkAccessManager manager = new QNetworkAccessManager(this);
manager->post(request,data);
但在 AQuery 中我只能找到带有键/值对的 POST 方法(来自文档):
String url = "http://search.twitter.com/search.json";
Map<String, Object> params = new HashMap<String, Object>();
params.put("q", "androidquery");
aq.ajax(url, params, JSONObject.class, new AjaxCallback<JSONObject>() {
@Override
public void callback(String url, JSONObject json, AjaxStatus status) {
showResult(json);
}
});
有没有办法在 AQuery 中仅 POST 数据?
最佳答案
我已经找到了如何做到这一点。
在 AQuery 源中,AbstractAjaxCallback 类的 httpEntity 方法中:
HttpEntity entity = null;
Object value = params.get(AQuery.POST_ENTITY);
if(value instanceof HttpEntity){
entity = (HttpEntity) value;
} else {
//urlencoded POST data
}
所以我需要做的就是这样:
HttpEntity entity = new StringEntity(data);
cb.param(AQuery.POST_ENTITY,entity);
其中 cb
是我的 AjaxCallback 对象。
关于java - 像 Qt 中那样没有 hashmap 的查询帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20069676/