2015-12-21 23 views
0

我想註冊用戶使用Smack API(4.1.5)AccountManager類createAccount方法。我得到以下日誌,並且請求似乎總是失敗的請求。我如何弄清楚請求有什麼問題? 我試圖通過刪除域和資源等來改變用戶名,但仍然是相同的結果。請問這個字段的長度有問題嗎? 我也在這裏閱讀了關於XEP0077 http://xmpp.org/extensions/xep-0077.html ,但無法弄清楚這個問題。XMPP註冊與Smack API返回壞請求 - 修改

D/SMACK: SENT (0): 
<iq to='xmpp.jp' id='w50y8-3' type='get'> 
    <query xmlns='jabber:iq:register'></query> 
</iq> 
D/SMACK: RECV (0): 
<iq from='xmpp.jp' id='w50y8-3' type='result'> 
    <query xmlns='jabber:iq:register'> 
    <instructions>Choose a username and password to register with this server</instructions> 
    <username></username> 
    <password/> 
    </query> 
</iq> 
D/SMACK: SENT (0): 
<iq to='xmpp.jp' id='w50y8-5' type='set'> 
    <query xmlns='jabber:iq:register'> 
    <username>[email protected]/SMACK</username> 
    <password>test123</password> 
    </query> 
</iq> 
D/SMACK: RECV (0): 
<iq from='xmpp.jp' id='w50y8-5' type='error'> 
    <query xmlns='jabber:iq:register'> 
    <username>[email protected]/SMACK</username> 
    <password>test123</password> 
    </query> 
    <error code='400' type='modify'> 
    <bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> 
    </error> 
</iq> 
W/System.err: org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: bad-request - modify 

是否有人可以幫助我瞭解如何診斷這些問題,如何找出什麼毛病上述要求?

回答

0
+0

謝謝。根據http://xmpp.org/extensions/xep-0077.html#usecases-register。如果缺少所需的信息,則服務器應發回不可接受的(406)響應。但我得到400. 但我仍然會按照你的建議嘗試,並會得到結果。 – GorillaCoder

+0

我加了這行 設置 requiredAttrs = accountManager.getAccountAttributes(); 然後根據需要返回用戶名和密碼。我已經提供了這兩個字段。 – GorillaCoder

+0

在這種情況下,您必須詢問服務器,即查看服務器的源,爲什麼它返回錯誤請求。 – Flow

0

我在XMPPTCPConnectionConfiguration.setServiceName()中傳遞了錯誤的服務名稱,導致數據包在IQRouter中丟失,因爲客戶端尚未進行身份驗證。希望這可以幫助別人!