Aquery Post без хеш-карты, как в Qt

Я портирую приложение с BB10 на андроид. Для запроса http я использую AQuery.

В Qt на BB10 я могу просто опубликовать данные:

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);

    }
});

Есть ли способ POST только данные в AQuery?

1 ответ

Решение

Я узнал, как это сделать.

В источнике AQuery, в методе httpEntity класса AbstractAjaxCallback:

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

Другие вопросы по тегам