2012-03-26 3 views
3

Я получаю vCard с помощью библиотеки asmack. Я могу получить визитную карточку, но ответ не совсем то, что мне требуется, это только дает ответНе получать точный ответ от vCard с помощью asmack

<iq id="3842p-8" to="[email protected]" type="get"> 
           <vCard xmlns='vcard-temp'><FN>Lalit Poptani</FN> 

Ожидаемый ответ полная детали/информация о пользователе, как показан here

Я пробовал как показано ниже,

VCard vCard = new VCard(); 
try { 
     ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", 
                  new VCardProvider()); 
     vCard.load(conn, user); 
     Log.d("Vcard XML", vCard.toXML()); 
    } catch (XMPPException e) { 
     e.printStackTrace(); 
    } 

Я также попытался с помощью this answer настройки всего Thats требуется. Итак, есть ли что-нибудь, что требуется дополнительно для получения полного xml vCard пользователя?

+0

Hmn. Я вижу, что вы выполняете запрос точно так же [который, похоже, работал для другого пользователя SO] (http://stackoverflow.com/questions/8355684/asmack-not-loading-vcard). Единственным осложнением является то, что ваш результат, кажется, отключается после первой записи. [This thread] (http://code.google.com/p/asmack/issues/detail?id=14) помогает вам вообще? – MrGomez

+0

Спасибо за комментарий, но я уже проверил это, но он не работает. –

+0

Очень странно. Хотя, интересно: «Log.d» действительно печатает весь XML? Что связано с отладчиком, связанным с этой проблемой? – MrGomez

ответ

1

Попробуйте не использовать обычный смахивать на простой Java приложения (не Android), где вы можете включить в окно отладки (-Dsmack.debugEnabled = истина), который даст вам сырые строфы, получаемые от сервера. Это, по крайней мере, подтвердит правильность строфы. Если это не так, значит, у вас проблема с сервером. Я думаю, что это маловероятно, так как неправильные строфы обычно приводят к прекращению соединения, поскольку клиент не может разобрать поток.

Если они верны, возможно, проблема в самом провайдере. Согласно документации, Smacks 'VCard class is incomplete, так что возможно, что возвращаемая информация просто не входит в список анализируемых полей.

Зная, что возвращенная строфа упростит ее проверку.

asmack происходит от Smack, поэтому он должен вести себя точно так же в этом конкретном случае (большинство случаев фактически).

+0

Aaahhh !!! спасибо было просто не известно о том, что «mConfiguration.setDebuggerEnabled (true);« делает », применяет его, заработал;) –

+0

как вы его работали? – Tijme

Смежные вопросы