วิธีใช้ xml จากบริการเว็บโดยใช้การรับรองความถูกต้อง

ฉันกำลังพยายามเรียกใช้บริการ REST (ที่ต้องมีการตรวจสอบสิทธิ์) จากแอป Android ของฉัน ฉันทำสิ่งนี้ได้สำเร็จแล้วด้วย URL ที่ไม่จำเป็นต้องมีการตรวจสอบสิทธิ์ แต่ไม่แน่ใจถึงวิธีการที่ถูกต้องที่จะใช้สำหรับการตรวจสอบสิทธิ์ ขณะนี้ฉันกำลังใช้ xml โดยใช้ Sax Parser และโทร url.openStream() เช่นนี้:

QuestionHandler myQuestionHandler = new QuestionHandler();
XMLReader xr = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
xr.setContentHandler(myQuestionHandler);
xr.parse(new InputSource(new URL('MyUnAuthenticatedURL').openStream()));

handler.post(new Runnable() {
  public void run() {
    recentQuestions = myQuestionHandler.getResultList();
    loadQuestions = false;
    fillData();
  }
});

ฉันอ่านมาว่าฉันควรใช้ org.apache.http.impl.client.DefaultHttpClient เพื่อใช้ประโยชน์จากการตรวจสอบสิทธิ์ขั้นพื้นฐานของ HTTP โดยใช้คุกกี้เซสชันเริ่มต้น แต่ฉันไม่เข้าใจว่าควรดำเนินการอย่างไรร่วมกับ Sax Parser

เป้าหมายหลักที่นี่คือฉันต้องการเรียก URL ที่ต้องใช้ชื่อผู้ใช้ที่ได้รับการรับรองความถูกต้องและให้ URL นั้นส่งคืน XML หากชื่อผู้ใช้ได้รับการรับรองความถูกต้องด้วยรหัสผ่าน


person JohnRock    schedule 08.02.2010    source แหล่งที่มา


คำตอบ (1)


ฉันเชื่อว่าฉันได้ทำสิ่งที่คุณขอแล้วใน ChandlerQE ดู ChandlerQE.java สำหรับวิธี run() รหัสไม่สวย แต่โดยพื้นฐานแล้วฉันใช้ httpclient เพื่อโพสต์และรับ และแยกวิเคราะห์ XML ที่ส่งคืนด้วย SAXParser

person Heikki Toivonen    schedule 08.02.2010
comment
ขอบคุณสำหรับตัวอย่างโค้ดของคุณ ฉันกำลังพยายามทำตามตัวอย่างของคุณ แต่ฉันสับสนเพราะคุณคาดหวัง HttpResonse และบริการเว็บของฉันได้รับการตั้งค่าให้ส่งคืน javax.ws.rs.core.Response - (ใช้สปริงและ CXF) ฉันจำเป็นต้องส่งคืนคำตอบประเภทใด - person JohnRock; 11.02.2010
comment
ฉันสับสน. สิ่งใดในฝั่งไคลเอ็นต์ Android ที่คุณใช้บนฝั่งเซิร์ฟเวอร์เพื่อส่งคำตอบ การตอบสนองเป็นเพียงข้อความผ่านสาย/อากาศ - person Heikki Toivonen; 11.02.2010
comment
ใช่คุณถูก. ขออภัย ฉันสับสนเกี่ยวกับเรื่องนั้นสักครู่ ฉันคิดว่าฉันต้องส่งคืนออบเจ็กต์การตอบกลับที่เป็นประเภทเดียวกับที่ลูกค้าคาดว่าจะได้รับ แต่ดูเหมือนว่าจะไม่สำคัญ - person JohnRock; 12.02.2010
comment
เย็น. หากคำตอบของฉันเหมาะกับคุณ โปรดทำเครื่องหมายว่าเป็นคำตอบที่ยอมรับแล้ว สถิติเหล่านี้อาจเป็นตัวกำหนดว่าผู้คนจะตอบคำถามของคุณในอนาคตมากเพียงใด - person Heikki Toivonen; 12.02.2010
comment
ใช่. คำตอบของคุณช่วยฉันในส่วนแรกของคำถามของฉัน ส่วนที่ฉันยังสับสนคือจะทำให้เว็บเซอร์ของฉันใช้ข้อมูลรับรองความปลอดภัยที่ส่งผ่านใน httpclient เพื่อตรวจสอบสิทธิ์ผู้ใช้ได้อย่างไร รวมถึงส่งผ่านหลักไปยังการเรียกเมธอดเว็บเซอร์วิส (การใช้ Spring Security) ฉันได้โพสต์คำถามอื่นสองสามข้อใน StackOverflow เพื่ออธิบายรายละเอียดเกี่ยวกับเรื่องนี้ หากคุณมีความเชี่ยวชาญในเรื่องนี้เช่นกัน เราจะยินดีอย่างยิ่งหากคุณสามารถตอบคำถามเหล่านั้นได้ ขอบคุณ! - person JohnRock; 13.02.2010