पर मूल HTTP प्रमाणीकरण मैं एक छोटा ट्विटर क्लाइंट चलाने की कोशिश कर रहा हूं और मैं एपीआई कॉल की जांच करते समय एक समस्या में भाग गया जिसके लिए प्रमाणीकरण की आवश्यकता है।आईफोन
मेरे पासवर्ड में इसमें विशेष वर्ण हैं, इसलिए जब मैं निम्न कोड का उपयोग करने का प्रयास करता हूं तो यह काम नहीं करता है।
NSString *post = [NSString stringWithFormat:@"status=%@", [status stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@:%@@%@/statuses/update.json", username, password, TwitterHostname]];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse *response;
NSError *error;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
मैंने बेस 64 में देखना शुरू कर दिया और प्रमाणीकरण को हेडर में डाल दिया। मैंने अपने बेस 64 कार्यान्वयन पर Dave Dribin's पोस्ट पाया, और यह समझ में आया। हालांकि जब मैंने इसका उपयोग करने की कोशिश की तो संकलक ने शिकायत शुरू कर दी कि यह कैसे openssl पुस्तकालयों को नहीं मिला। तो मैंने पढ़ा कि मुझे libcrypto लाइब्रेरी में लिंक करने की आवश्यकता है, लेकिन यह आईफोन के लिए मौजूद नहीं प्रतीत होता है।
मैंने लोगों को यह भी पढ़ा है कि सेब उन ऐप्स को अनुमति नहीं देगा जो क्रिप्टो पुस्तकालयों का उपयोग करते हैं, जो मुझे समझ में नहीं आता है।
तो अब मैं थोड़ी फंसे और उलझन में हूं। मेरे ऐप में बुनियादी प्रमाणीकरण प्राप्त करने का सबसे आसान तरीका क्या है?
चीयर्स
मैं initWithRequest को sendSynchronous कॉल बदल दिया है: अनुरोध प्रतिनिधि: स्वयं और फिर प्रतिनिधियों में didReceiveAuthenticationChallenge सेटअप, लेकिन कुछ भी नहीं कहा जाता है। मैंने अन्य NSURLConnection प्रतिनिधि विधियों की कोशिश की और वे या तो काम नहीं किया। कोई विचार? – Meroon
मुझे पता चला कि प्रतिनिधि विधियां क्यों काम नहीं कर रही थीं। मैं एक कक्षा विधि से initWithRequest बुला रहा था जो काम नहीं करेगा। सहायता के लिए धन्यवाद। – Meroon
क्षमा करें, अनावश्यक रूप से जवाब दें (लेकिन खुश है कि आप अंत में वहां पहुंचे)।मैंने इसे विस्तारित किया है। उम्मीद है कि यह अब थोड़ा और उपयोगी है। –