如何解析smack Java中的错误IQ?

时间:2019-05-27 10:25:19

标签: java xmpp smack

我正在构建一个使用Smack将IQ发送到XMPP组件的Android应用。

典型请求如下所示:

 <iq to='component.localhost' id='123'>
   <query xmlns='example:bar' extraAttribute='blaz'>
      <extraElement>elementText</extraElement>
   </query>
 </iq>

我已经创建了扩展IQ的java类:

public class CustomIQ extends IQ {
    public final static String childElementName = "query";
    public final static String childElementNamespace = "example:bar";
    ...

我还创建并注册了提供商

public static class Provider extends IQProvider {
        @Override
        public Element parse(XmlPullParser parser, int i) throws Exception {
        ...

这对于我的用例非常有效。 问题出在我需要解析包含错误响应的结果时:

<error code="503" type="cancel">
   <service-unavailable  xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>

这使我的连接崩溃,并且我尝试在Provide.parse方法中引发异常,但这似乎不起作用。同样,调用Stanza.getError也会返回null。我想念什么?

0 个答案:

没有答案