我正在将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方法(来自doc):

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中的数据?

最佳答案

我已经知道如何做到这一点。

在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中没有哈希图的查询帖子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20069676/

10-09 04:57