java - 像 Qt 中那样没有 hashmap 的查询帖子

标签 java android qt blackberry-10 aquery

我正在将应用程序从 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/

相关文章:

Java:如何按列表的大小对列表列表进行排序?

java - 当用户单击警报按钮时,打开移动浏览器并在 Android 应用程序上显示 URL

c++ - valgrind 是否在 Debian Wheezy 上捕捉 Qt 4.8 在极简主义应用程序中泄漏内存?

c++ - 用鼠标改变QWidget的宽度

java - 静态方法总是同时返回

Java JIT 编译器下载

android - 将私有(private)字段添加到 android 上的 JNI 类会卡住应用程序

android - 像描述中那样的应用

C++ 错误 : no matching function call from pointer to pointer reference using Qt and QVariant

java - 在 lambda 表达式中使用默认方法