2011-12-06 35 views
5

के साथ आरईएसटी वेब सेवा के लिए एंड्रॉइड क्लाइंट मैंने बुनियादी प्रमाणीकरण का उपयोग करके एक सरल रीस्टफुल वेब सेवा लिख ​​ली है। मैं इस पृष्ठ secureRestWS से सुझावों का उपयोग करता हूं। उन्होंने एक वीडियो भी बनाया है और अधिक जानकारी के साथ यूट्यूब पर पोस्ट किया है। जब आप इसे ब्राउज़र में खोलते हैं तो यह ठीक काम करता है। आपको प्राधिकरण विंडो में उपयोगकर्ता नाम और पासवर्ड लिखना होगा।बुनियादी सुरक्षा

मुझे एंड्रॉइड क्लाइंट के साथ एक पृष्ठ भी मिला है जो httpclient का उपयोग करके बाकी वेब सेवा को कॉल करता है और यदि वेब सेवा प्रमाणीकरण के बिना है तो यह काम करता है। मैं इस उदाहरण का उपयोग कर रहा हूँ androidRestWSClient

client.AddParam("User Name", "myusername"); 
client.AddParam("Password", "mypassword"); 

या शीर्षक में: लेकिन मैं उपयोगकर्ता नाम और पासवर्ड को जोड़ने का तरीका इस परिदृश्य में नहीं जानता, मैं तरह की कोशिश की

client.AddHeader("User Name", "myusername"); 
client.AddHeader("Password", "mypassword"); 

लेकिन कुछ भी काम करता है।

http://192.168.1.42/RestWS/resources/helloWorld?username=myusername&password=mypassword 

मैं सच में डॉन 'टी इस के लिए एक समाधान है, इसलिए यदि किसी को एक उदाहरण के ग्राहक है मुझे लगता है कि सराहना करेंगे: मैं भी यूआरएल है कि वेब सेवा उपयोगकर्ता नाम और पासवर्ड की तरह बता बनाने का प्रयास करें।

वेब सेवा में मैं सरल GET विधि

@GET 
@Path("/text") 
public String getText() { 
    return "Hello World!"; 
} 

मैं उपयोगकर्ता नाम और पासवर्ड के लिए SecurityContext का प्रयोग करना होगा है? यह बेहतर manualy इस उदाहरण की तरह प्रमाणीकरण बनाने के लिए है:

http://aruld.info/accessing-restful-services-configured-with-ssl-using-resttemplate/ 

आपकी मदद

उत्तर

12

के लिए धन्यवाद तुम सिर्फ बुनियादी HTTP प्रमाणीकरण का उपयोग कर रहे हैं, तो यूआरएल इस तरह दिखना चाहिए:

http://username:[email protected]/RestWS/resources/helloWorld 

ठीक है, यहाँ तुम जाओ - और भूल नहीं है वोट दें और निशान के जवाब के रूप में इस काम करता है :):

HttpGet httpget; 
try{ 
    httpget = new HttpGet(url); 

    String auth =new String(Base64.encode((username + ":" + password).getBytes(),Base64.URL_SAFE|Base64.NO_WRAP)); 
    httpget.addHeader("Authorization", "Basic " + auth); 
    } 
+0

के लिए यूआरएल बनाना मेरे लिए यह काम करता है, इसलिए धन्यवाद, शायद कोई व्यक्ति पहले प्रश्न पर उत्तर देगा कि क्लाइंट में उपयोगकर्ता नाम और पासवर्ड कैसे जोड़ना है या मैं केवल क्लाइंट में लिंक का उपयोग करूंगा ... धन्यवाद – janilemy

+0

यह मेरे लिए ठीक काम करता है, मैंने इसे पाया है अन्य पृष्ठ, लेकिन 8 घंटे में अपने स्वयं के प्रश्न का उत्तर नहीं दे सकता ... लेकिन अब सब कुछ ठीक है, मदद के लिए धन्यवाद Kaediil ... – janilemy

संबंधित मुद्दे