এএফএইচটিটিপি ক্লায়েন্ট থেকে ব্যর্থতা ব্লকে এইচপিএস স্থিতি কোড পাওয়ার সহজ উপায় কি?


94

আমি দেখতে পাচ্ছি যে স্বীকৃত HTTP স্থিতি কোডগুলির একটি তালিকা রয়েছে যা আমি সংশোধন করতে পারি, তবে আমি মনে করি যে ব্যর্থতা ব্লকে যদি আমি এইচপিএস স্থিতি কোডটি পেতে পারি তবে এটি পরিষ্কার হয়ে যাবে ..

ঠিক আছে, অপারেশন অবজেক্টের সাথে উত্তরটি খুঁজে পেয়েছি

failure:^(AFHTTPRequestOperation *operation, NSError *error){ 
        NSLog(@"error code %d",[operation.response statusCode]);
}];

উত্তর:


136

ঠিক আছে, অপারেশন অবজেক্টের সাথে উত্তরটি খুঁজে পেয়েছি

failure:^(AFHTTPRequestOperation *operation, NSError *error){ 
       NSLog(@"error code %d",[operation.response statusCode]);
}];

এটি সম্ভবত সহায়ক হতে পারে[operation.request HTTPMethod]
Defvol

4
আমি জানি এটি পুরানো, তবে @ উইলহ্যাম্বোট - এইচটিপিএমথোদ আপনাকে জিইটি / পোষ্ট / পুট ... ইত্যাদির মতো দেবে, প্রতিক্রিয়া পরিস্থিতি যাচাইয়ের জন্য সম্ভবত সহায়ক নয়।
shorttuffsushi

111

এএফ নেটওয়ার্কিংয়ের নতুন সংস্করণগুলিতে, আপনি ত্রুটি থেকে প্রতিক্রিয়া অবজেক্টটি পুনরুদ্ধার করতে পারেন:

[[[error userInfo] objectForKey:AFNetworkingOperationFailingURLResponseErrorKey] statusCode]

আপনি যদি লাইনটি আরও উপরে পরিচালনা করতে ত্রুটি করছেন এবং প্রতিক্রিয়া অবজেক্টের চারপাশে যেতে চান না তবে এটি কার্যকর।


আপনাকে প্রথমে অন্তর্নিহিত ত্রুটিটি পেতে হবে। NSError *underlyingError = error.userInfo[@"NSUnderlyingError"]
ওনাটো

19

এএফ নেটওয়ার্কিং 3.0.০ এর জন্য ব্যবহার করুন

failure:^(NSURLSessionTask *operation, NSError *error) {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)operation.response;
    httpResponse.statusCode;
    NSLog(@"status code: %li", (long)httpResponse.statusCode);
}

13

এনএসআইন্টেজার অপারেশন স্ট্যাটাসকোড = [অপারেশন.অরার কোড];

NSInteger httpStatusCode = অপারেশন.সপাসন.স্ট্যাটাসকোড;

যদি অনুরোধগুলি বাতিল / অপ্রয়োজনীয় / সময়সীমা বাতিল httpStatusCodeকরা হয় তবে সর্বদা থাকবে 0

বিকল্পভাবে আপনি বিষয়টি বুঝতে পেরে সমস্যাটি সনাক্ত করতে পারেন operationStatusCode। এটি একটি NSErrorঅবজেক্ট।

  • অনুরোধটি প্রক্রিয়া করার জন্য যদি এটি / সময়সীমা / কোনও নেটওয়ার্ক পৌঁছতে না পারে, তা operationStatusCodeহবে -1009
  • আপনি যদি ক্রিয়াকলাপ বাতিল করেন তবে operationStatusCodeতা হবে -999

আপনি অ্যাপলের ডকুমেন্টেশনে অন্যান্য সমস্ত NSErrorকোড এবং তাদের বিবরণ চেক করতে পারেন


7

আমি সুইফট 3 এর সাথে স্ট্যাটাস কোডটি পেতে সক্ষম হয়েছি:

((error.userInfo[AFNetworkingOperationFailingURLResponseErrorKey])
    as! HTTPURLResponse).statusCode

0

এটি আমার জন্য কাজ আপনার অনুরোধের নীচে লাইন যুক্ত করুন

ম্যানেজার.আরএকুয়েস্টসরিয়ালাইজার = [AFJSONRequestSerializer সিরিয়ালাইজার];

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.