2013-11-23 11 views
5

के साथ फ़ाइल डाउनलोड कैसे करें मुझे यह करने के लिए खोज परिणामों के माध्यम से कठिन समय मिल रहा है और मुझे दस्तावेज़ में कुछ भी ठोस नहीं मिल रहा है। मैं बस दस्तावेज़ निर्देशिका में एक फ़ाइल और स्टोर डाउनलोड करना चाहता हूँ। फ़ाइल प्रकार का है। प्लिस्ट, लेकिन मुझे प्लेस्ट को पार्स करने की आवश्यकता नहीं है। जैसे मैंने कहा कि मुझे बस इसे डिस्क पर सहेजने की जरूरत है।AFNetworking 2.0

क्या मैं इसके लिए AFHTTPRequestOperationManager का उपयोग करता हूं? अगर मैं AFHTTPResponseSerializer का उपयोग मैं इस मिल

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    //manager.responseSerializer = [AFPropertyListResponseSerializer serializer]; 
    manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 

    [manager GET:url parameters:nil 
     success:^(AFHTTPRequestOperation *operation, id responseObject) { 
      DLog(@"downloaded plist"); 
     } 
     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      DLog(@"JSON DataError: %@", error); 
     }]; 

:

यह है कि मैं क्या सामान्य रूप में की कोशिश कर रहा है

Error Domain=AFNetworkingErrorDomain Code=-1016 "Request failed: unacceptable content-type: text/plain" 
:

Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: internal server error (500)" 

अगर मैं AFPropertyListResponseSerializer का उपयोग मैं इस मिल

लेकिन मुझे यह भी यकीन नहीं है कि मैं सही एपीआई का उपयोग कर रहा हूं।

+1

(यह) [http://stackoverflow.com/questions/8372661/how-to-download-a-file-and-save-it-to-the- दस्तावेज़-निर्देशिका-साथ-नेटवर्कवर्क] मदद कर सकता है। – n00bProgrammer

+0

हालांकि यह AFNetworking के पुराने संस्करण का उपयोग करता है। क्या यह अभी भी अनुशंसित तरीका है? – soleil

+0

ने कोशिश की और मुझे अभी भी त्रुटि मिली: त्रुटि डोमेन = AFNetworkingErrorDomain कोड = -1011 "अनुरोध विफल: आंतरिक सर्वर त्रुटि (500) – soleil

उत्तर

15

कृपया, इस उदाहरण को आजमाएं। इस मदद की आशा है! बाकी

// Step 1: create NSURL with full path to downloading file 
// for example try this: NSString *fileUrl = @"https://pbs.twimg.com/profile_images/2331579964/jrqzn4q29vwy4mors75s_400x400.png"; 
// And create NSURLRequest object with our URL 
NSURL *URL = [NSURL URLWithString:fileUrl]; 
NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 

// Step 2: save downloading file's name 
// For example our fileName string is equal to 'jrqzn4q29vwy4mors75s_400x400.png' 
NSString *fileName = [URL lastPathComponent]; 

// Step 3: create AFHTTPRequestOperation object with our request 
AFHTTPRequestOperation *downloadRequest = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 

// Step 4: set handling for answer from server and errors with request 
[downloadRequest setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
      // here we must create NSData object with received data... 
      NSData *data = [[NSData alloc] initWithData:responseObject]; 
      // ... and save this object as file 
      // Here 'pathToFile' must be path to directory 'Documents' on your device + filename, of course 
      [data writeToFile:pathToFile atomically:YES]; 
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      NSLog(@"file downloading error : %@", [error localizedDescription]); 
     }]; 

// Step 5: begin asynchronous download 
[downloadRequest start]; 

कुछ: What's the best way to find the user's Documents directory on an iPhone?

+1

कुछ स्पष्टीकरण भी लिखें। –

+1

उत्तर में मेरी खराब शैली के लिए खेद है :) अब यह बेहतर है? –

+1

क्या आप कृपया मुझे बता सकते हैं कि क्या एक ही अनुरोध कई बार निष्पादित करेगा? क्या हम डाउनलोड शुरू करने से पहले जांच सकते हैं कि अगर पहले से ही उसी अनुरोध के लिए प्रक्रिया चल रही है? –

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