Skip to content

Commit 33cd7a6

Browse files
committed
fix: 用户登录失败时,提示信息不准确的问题
1 parent f1e013b commit 33cd7a6

File tree

1 file changed

+30
-19
lines changed

1 file changed

+30
-19
lines changed

src/main/java/com/meteor/wechatbc/entitiy/session/BaseRequest.java

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import lombok.Data;
77
import lombok.ToString;
88
import okhttp3.Cookie;
9+
import org.apache.logging.log4j.LogManager;
910
import org.w3c.dom.Document;
1011
import org.w3c.dom.Element;
1112
import org.w3c.dom.NodeList;
@@ -49,26 +50,36 @@ public BaseRequest(String xmlData){
4950
try {
5051
builder = factory.newDocumentBuilder();
5152
Document document = builder.parse(new ByteArrayInputStream(xmlData.getBytes()));
52-
NodeList skeyList = document.getElementsByTagName("skey");
53-
if (skeyList.getLength() > 0) {
54-
Element skeyElement = (Element) skeyList.item(0);
55-
this.skey = skeyElement.getTextContent();;
56-
}
57-
NodeList wxsidList = document.getElementsByTagName("wxsid");
58-
if (wxsidList.getLength() > 0) {
59-
Element wxsidElement = (Element) wxsidList.item(0);
60-
this.sid = wxsidElement.getTextContent();
61-
}
62-
NodeList wxuniList = document.getElementsByTagName("wxuin");
63-
if (wxsidList.getLength() > 0) {
64-
Element wxuniElement = (Element) wxuniList.item(0);
65-
this.uin = wxuniElement.getTextContent();
66-
}
67-
NodeList passTicketList = document.getElementsByTagName("pass_ticket");
68-
if (passTicketList.getLength() > 0) {
69-
Element passTicketElement = (Element) passTicketList.item(0);
70-
this.passTicket = passTicketElement.getTextContent();
53+
54+
Element errorElement = (Element) document.getElementsByTagName("error").item(0);
55+
if (errorElement == null) {
56+
NodeList skeyList = document.getElementsByTagName("skey");
57+
if (skeyList.getLength() > 0) {
58+
Element skeyElement = (Element) skeyList.item(0);
59+
this.skey = skeyElement.getTextContent();;
60+
}
61+
NodeList wxsidList = document.getElementsByTagName("wxsid");
62+
if (wxsidList.getLength() > 0) {
63+
Element wxsidElement = (Element) wxsidList.item(0);
64+
this.sid = wxsidElement.getTextContent();
65+
}
66+
NodeList wxuniList = document.getElementsByTagName("wxuin");
67+
if (wxsidList.getLength() > 0) {
68+
Element wxuniElement = (Element) wxuniList.item(0);
69+
this.uin = wxuniElement.getTextContent();
70+
}
71+
NodeList passTicketList = document.getElementsByTagName("pass_ticket");
72+
if (passTicketList.getLength() > 0) {
73+
Element passTicketElement = (Element) passTicketList.item(0);
74+
this.passTicket = passTicketElement.getTextContent();
75+
}
76+
} else {
77+
String ret = errorElement.getElementsByTagName("ret").item(0).getTextContent();
78+
String message = errorElement.getElementsByTagName("message").item(0).getTextContent();
79+
LogManager.getLogger("BASE-REQUEST").error("登录失败:" + message + " CODE: " + ret);
80+
throw new RuntimeException();
7181
}
82+
7283
} catch (ParserConfigurationException e) {
7384
throw new RuntimeException(e);
7485
} catch (IOException e) {

0 commit comments

Comments
 (0)