أنت لا تتحقق من صحة رمز حالة الاستجابة ، لذلك من المحتمل أن يعيد 404 حالة .Success
. كل ما يفعله المتسلسل responseData
هو التحقق من عدم وجود خطأ (والذي لن يكون موجودًا لأنك لا تتحقق من صحة رمز حالة الاستجابة) أو أن البيانات موجودة.
public static func dataResponseSerializer() -> ResponseSerializer<NSData, NSError> {
return ResponseSerializer { _, _, data, error in
guard error == nil else { return .Failure(error!) }
guard let validData = data where validData.length > 0 else {
let failureReason = "Data could not be serialized. Input data was nil or zero length."
let error = Error.errorWithCode(.DataSerializationFailed, failureReason: failureReason)
return .Failure(error)
}
return .Success(validData)
}
}
في حالتك ، أنت تتلقى 404 الذي لا يُلقي بخطأ ، ويعيد الخادم البيانات. لذلك ، نجح المتسلسل responseData
. إذا كنت تتوقع ظهور خطأ دائمًا في 404 ، فيجب عليك أيضًا استخدام طريقة .validate(statusCode: [200])
قبل المتسلسل responseData
. مزيد من المعلومات في قسم التحقق من صحة README.
في المستقبل ، تكون أسئلة مثل هذه أكثر ملاءمة لـ Stack Overflow بعلامة alamofire
. نستخدم GitHub لطلبات الأخطاء والميزات. 🍻
من إرشادات المساهمة الخاصة بنا
نحن لا نستخدم GitHub كمنتدى دعم. بالنسبة لأية أسئلة استخدام ليست خاصة بالمشروع نفسه ، يرجى طرحها على Stack Overflow بدلاً من ذلك. من خلال القيام بذلك ، ستكون أكثر قدرة على حل مشكلتك بسرعة ، وستسمح لأي شخص آخر لديه نفس السؤال بالعثور على الإجابة. يسمح هذا أيضًا للمشرفين بالتركيز على تحسين المشروع للآخرين.
اقدر هذا فعلا
أنا أعاني من هذه المشكلة ... شكرا جزيلا لك.
التعليق الأكثر فائدة
أنت لا تتحقق من صحة رمز حالة الاستجابة ، لذلك من المحتمل أن يعيد 404 حالة
.Success
. كل ما يفعله المتسلسلresponseData
هو التحقق من عدم وجود خطأ (والذي لن يكون موجودًا لأنك لا تتحقق من صحة رمز حالة الاستجابة) أو أن البيانات موجودة.في حالتك ، أنت تتلقى 404 الذي لا يُلقي بخطأ ، ويعيد الخادم البيانات. لذلك ، نجح المتسلسل
responseData
. إذا كنت تتوقع ظهور خطأ دائمًا في 404 ، فيجب عليك أيضًا استخدام طريقة.validate(statusCode: [200])
قبل المتسلسلresponseData
. مزيد من المعلومات في قسم التحقق من صحة README.في المستقبل ، تكون أسئلة مثل هذه أكثر ملاءمة لـ Stack Overflow بعلامة
alamofire
. نستخدم GitHub لطلبات الأخطاء والميزات. 🍻من إرشادات المساهمة الخاصة بنا
يسأل اسئلة
نحن لا نستخدم GitHub كمنتدى دعم. بالنسبة لأية أسئلة استخدام ليست خاصة بالمشروع نفسه ، يرجى طرحها على Stack Overflow بدلاً من ذلك. من خلال القيام بذلك ، ستكون أكثر قدرة على حل مشكلتك بسرعة ، وستسمح لأي شخص آخر لديه نفس السؤال بالعثور على الإجابة. يسمح هذا أيضًا للمشرفين بالتركيز على تحسين المشروع للآخرين.