/ / AFNetworking के साथ यह कैसे करें? - nsurlconnection, afnetworking, asiformdatarequest, nsurlconnection

AFNetworking के साथ ऐसा कैसे करें? - nsurlconnection, afnetworking, asiformdatarequest, nsurlconnectiondelegate

मैं अपने पुराने "ASIHTTP" कोड को AFNetworking में बदलने की कोशिश कर रहा हूं, और इस पर अटक गया, क्या कोई मुझे बता सकता है कि इस कोड को AFNetworking में कैसे बदलना है

NSString *urlString = [NSString stringWithFormat:kLogin];
NSURL *url= [NSURL URLWithString:urlString];

ASIFormDataRequest *request= [ASIFormDataRequest requestWithURL:url];
[activeRequests addObject:request];
[request setValidatesSecureCertificate:YES]; //SSL enforcement
[request addRequestHeader:@"Host" value:kHost];
[request addRequestHeader:@"Accept" value:@"application/xml, text/javascript, */*; q=0.01"];
[request addRequestHeader:@"Accept-Language" value:@"en-us,en;q=0.5"];
[request addRequestHeader:@"Accept-Encoding" value:@"gzip, deflate"];
[request addRequestHeader:@"Connection" value:@"keep-alive"];
[request addRequestHeader:@"X-Requested-With" value:@"XMLHttpRequest"];
[request addRequestHeader:@"Authorization" value:[NSString stringWithFormat:@"Basic %@", [Utils base64String:[NSString stringWithFormat:@"%@:%@", username, password]]]];
[request setDelegate:self];
[[ASIDownloadCache sharedCache] clearCachedResponsesForStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[ASIHTTPRequest clearSession];
[request setTimeOutSeconds:REQUEST_TIME_OUT_SECS];
[request startAsynchronous];

मैंने अनुरोध ऑपरेशन के साथ AFHTTPClient की कोशिश की है लेकिन प्रमाणीकरण भाग में अटक गया है। और त्रुटि 401 हो रही है।

जो कोड मैंने AFNetworking के लिए उपयोग किया है,

NSString * urlString = [NSString stringWithFormat: kLogin]; NSURL * url = [NSURL URLWithString: urlString];

AppHTTPClient* httpClient = [[AppHTTPClient alloc] initWithBaseURL:url];
[httpClient setDefaultHeader:@"Host" value:kHost];
[httpClient setDefaultHeader:@"Accept" value:@"application/xml, text/javascript, */*; q=0.01"];
[httpClient setDefaultHeader:@"Accept-Language" value:@"en-us,en;q=0.5"];
[httpClient setDefaultHeader:@"Accept-Encoding" value:@"gzip, deflate"];
[httpClient setDefaultHeader:@"Connection" value:@"keep-alive"];
[httpClient setDefaultHeader:@"X-Requested-With" value:@"XMLHttpRequest"];

[httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]];

[httpClient setAuthorizationHeaderWithUsername:username password:password];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"GET"
path:nil
parameters:nil];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];


operation.allowsInvalidSSLCertificate = YES;

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"2");

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog([error localizedDescription]);
NSLog(operation.responseString);

}
];
[operation start];

उत्तर:

जवाब के लिए 0 № 1

प्रमाणीकरण से निपटने के लिए AFHTTPClient सेट का उपयोग करें। यह काम करना चाहिए, कम से कम मेरे मामले में यह करता है।


जवाब के लिए 0 № 2

हल किया !!

"ASIHTTP" डिफ़ॉल्ट रूप से जोड़ रहा था"उपयोगकर्ता और एजेंट", के रूप में "App_Name_with_Version (iPad सिम्युलेटर; iPhone OS 6.0; en_US)" और AFNetworking के रूप में नहीं। इसलिए मैंने इसे अनुरोध निर्माण और इसके कार्य के दौरान जोड़ा है।