Запрос. Как я могу получить имя пользователя, идентификатор, имя, фамилию и адрес электронной почты из учетной записи Google?
Я использую приведенный ниже код из демонстрационного приложения AQuery, и XML всегда нулевой
Как я могу получить информацию, связанную с аккаунтом, который я выбрал из списка аккаунтов Google?
public void auth_specific_account(){
String url = "https://www.google.com/reader/atom/user/-/state/com.google/reading-list?n=8";
AjaxCallback<XmlDom> cb = new AjaxCallback<XmlDom>();
cb.url(url).type(XmlDom.class).weakHandler(this, "readerCb");
cb.auth(this, AQuery.AUTH_READER, AQuery.ACTIVE_ACCOUNT);
aq.progress(R.id.progress).ajax(cb);
}
public void readerCb(String url, XmlDom xml, AjaxStatus status) {
if(xml != null){
List<XmlDom> entries = xml.tags("entry");
List<String> titles = new ArrayList<String>();
for(XmlDom entry: entries){
titles.add(entry.text("title"));
}
showTextResult(titles);
}
AQUtility.debug("status:" + status);
showResult(xml, status);
}
1 ответ
Вы можете использовать другой подход, когда слабый обработчик не нужен, передав aq.ajax() объект расширенного AjaxCallback, который получает информацию об элементе, для которого должен использоваться запрос.
private class AjaxCallbackAddingMarker extends AjaxCallback<Bitmap> {
private final Item item;
AjaxCallbackAddingMarker(Item item) {
this.item = item;
}
@Override
public synchronized void callback(String url, Bitmap object, AjaxStatus status) {
// do something with item and downloaded Bitmap
}
};
Если вы хотите использовать weakHandler, то это мое решение:
private void loadImage(final ImageView image, String url) {
Bitmap bmp = aq.getCachedImage(url);
if (bmp!= null) {
image.setImageBitmap(bmp);
return;
}
Object handler = new Object() {
@SuppressWarnings("unused")
public void callback(String url, Bitmap bmp, AjaxStatus status) {
if (bmp != null) {
image.setImageBitmap(bmp);
}
}
};
AjaxCallback<Bitmap> bmpCallback = new AjaxCallback<Bitmap>();
bmpCallback.type(Bitmap.class).url(url).header("User-Agent", appPrefs.getUserAgent()).policy(AQuery.CACHE_PERSISTENT)
.expire(GlobalVars.MARKERS_CACHE_EXPIRE).fileCache(true).weakHandler(handler, "callback");
aq.ajax(bmpCallback);
}