2013-08-21 7 views
25

मैं एपीआई आराम नया हूँ और .NETउपयोगकर्ता नाम और पासवर्ड के साथ एक आराम एपीआई कॉलिंग - कैसे करने के लिए

के माध्यम से उन्हें बुला मैं एक एपीआई है: https://sub.domain.com/api/operations?param=value&param2=value

एपीआई के लिए नोट

कहना है कि मैं अधिकृत करने के लिए बुनियादी पहुंच प्रमाणीकरण का उपयोग करने की आवश्यकता है - मैं यह कैसे कर सकता हूं?

 WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?param=value&param2=value"); 
     req.Method = "GET"; 
     //req.Credentials = new NetworkCredential("username", "password"); 
     HttpWebResponse resp = req.GetResponse() as HttpWebResponse; 

हालांकि मैं एक 401 अनधिकृत त्रुटि मिलती है:

मैं वर्तमान में इस कोड है।

मुझे क्या याद आ रहा है, मैं बुनियादी पहुंच ऑथ का उपयोग करके एपीआई कॉल कैसे बना सकता हूं?

+0

प्रमाणीकरण प्रकार API पर निर्भर करता है। आप जिस एपीआई को कॉल करने का प्रयास कर रहे हैं वह क्या है? 401 अनधिकृत माध्यमों का अर्थ है कि आप स्पष्ट रूप से अमान्य प्रमाण-पत्र पारित कर रहे थे और निदान के लिए पर्याप्त संदर्भ प्रदान नहीं करते हैं। ओएआई का उपयोग कर एपीआई है? –

उत्तर

40

यदि एपीआई HTTP मूल प्रमाणीकरण का उपयोग करने के लिए कहता है, तो आपको अपने अनुरोध में एक प्राधिकरण शीर्षलेख जोड़ना होगा। मैं इस तरह देखने के लिए अपने कोड में कोई बदलाव चाहते हैं:

WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?param=value&param2=value"); 
    req.Method = "GET"; 
    req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("username:password")); 
    //req.Credentials = new NetworkCredential("username", "password"); 
    HttpWebResponse resp = req.GetResponse() as HttpWebResponse; 

, "username" और "password" की जगह निश्चित रूप से सही मान के साथ।

+0

लेकिन 'resp' के मूल्य को कैसे पढ़ा जाए? –

+0

@SHEKHARSHETE आप [HttpWebResponse.GetResponseStream()] (http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.getresponsestream.aspx) पर एक नज़र डालना चाहते हैं। एक बार स्ट्रीम करने के बाद स्ट्रीम बंद करने पर टिप्पणियां नोट का विशेष नोट लें। यह काफी महत्वपूर्ण है। – Adrian

+0

सुनिश्चित करें कि आप req.Credentials .. आपके उपयोगकर्ता नाम और पासवर्ड के साथ लाइन को असम्बद्ध करते हैं। अन्यथा यह अनधिकृत रहती है। – Gurusinghe

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

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