ฉันรัก ASIHTTPRequest และฉันก็เสียใจที่เห็นมันผ่านไป อย่างไรก็ตามผู้พัฒนา ASI พูดถูก ASIHTTPRequest มีขนาดใหญ่และป่องมากจนแม้แต่เขาก็ไม่สามารถอุทิศเวลาเพื่อนำมาใช้กับคุณสมบัติใหม่ล่าสุดของ iOS และเฟรมเวิร์กอื่น ๆ ได้ ฉันย้ายไปและตอนนี้ใช้ AFNetworking
ที่กล่าวมาฉันต้องบอกว่า AFNetworking นั้นไม่เสถียรกว่า ASIHTTP มากและสำหรับสิ่งที่ฉันใช้มันจำเป็นต้องมีการปรับแต่ง
ฉันมักจะต้องส่งคำขอ HTTP ไปยังแหล่งที่มา HTTP 100 รายการก่อนที่ฉันจะแสดงผลลัพธ์บนหน้าจอและฉันได้ใส่ AFHTTPNetworkOperation ลงในคิวการดำเนินการ ก่อนดาวน์โหลดผลลัพธ์ทั้งหมดฉันต้องการยกเลิกการดำเนินการทั้งหมดภายในคิวการดำเนินการจากนั้นปิดตัวควบคุมมุมมองที่เก็บผลลัพธ์ไว้
นั่นไม่ได้ผลเสมอไป
ฉันเกิดข้อขัดข้องในบางครั้งด้วย AFNetworking ในขณะที่ ASIHTTPRequest การดำเนินการนี้ทำงานได้อย่างไม่มีที่ติ ฉันหวังว่าฉันจะบอกได้ว่าส่วนใดของ AFNetworking ที่ขัดข้องเนื่องจากมันยังคงหยุดทำงานในจุดต่างๆ (อย่างไรก็ตามเวลานี้ส่วนใหญ่ดีบักเกอร์ชี้ไปที่ NSRunLoop ที่สร้างวัตถุ NSURLConnection) ดังนั้น AFNetworking จึงต้องเติบโตเต็มที่เพื่อที่จะได้รับการพิจารณาว่าสมบูรณ์ตามที่ ASIHTTPRequest เป็น
นอกจากนี้ ASIHTTPRequests ยังรองรับการพิสูจน์ตัวตนไคลเอนต์ซึ่ง AFNetworking ยังขาดอยู่ในขณะนี้ วิธีเดียวที่จะนำไปใช้คือซับคลาส AFHTTPRequestOperation และเพื่อแทนที่วิธีการพิสูจน์ตัวตนของ NSURLConnection อย่างไรก็ตามหากคุณเริ่มมีส่วนร่วมกับ NSURLConnection คุณจะสังเกตเห็นว่าการวาง NSURLConnection ไว้ในกระดาษห่อหุ้ม NSOperation และการเขียนบล็อกการทำให้สมบูรณ์นั้นไม่ยากอย่างที่คิดและคุณจะเริ่มคิดว่าอะไรที่ทำให้คุณไม่ทิ้งไลบรารีของบุคคลที่สาม
ASI ใช้วิธีการที่แตกต่างกันโดยสิ้นเชิงเนื่องจากใช้ CFNetworking (เฟรมเวิร์กพื้นฐานระดับล่างที่ใช้ C) เพื่อให้สามารถดาวน์โหลดและอัปโหลดไฟล์ได้โดยข้าม NSURLConnection อย่างสมบูรณ์และสัมผัสกับแนวคิดที่พวกเราส่วนใหญ่ OS X และนักพัฒนา iOS กลัวเกินไป ด้วยเหตุนี้คุณจึงอัปโหลดและดาวน์โหลดไฟล์ได้ดีขึ้นแม้กระทั่งแคชของหน้าเว็บ
ฉันชอบแบบไหน? มันยากที่จะพูด. ถ้า AFNetworking เติบโตเพียงพอฉันจะชอบมันมากกว่า ASI จนถึงตอนนั้นฉันอดไม่ได้ที่จะชื่นชม ASI และวิธีที่มันกลายเป็นหนึ่งในเฟรมเวิร์กที่มีคนใช้มากที่สุดตลอดกาลสำหรับ OS X และ iOS
แก้ไข:
ฉันคิดว่าถึงเวลาอัปเดตคำตอบนี้แล้วเนื่องจากมีการเปลี่ยนแปลงเล็กน้อยหลังจากโพสต์นี้
โพสต์นี้เขียนเมื่อไม่นานมานี้และ AFNetworking ได้เติบโตเต็มที่แล้ว 1-2 เดือนที่ผ่านมา AF โพสต์การอัปเดตเล็กน้อยสำหรับการดำเนินการ POST ซึ่งเป็นการร้องเรียนครั้งสุดท้ายของฉันเกี่ยวกับเฟรมเวิร์ก (ข้อผิดพลาดในการสิ้นสุดบรรทัดเล็ก ๆ เป็นสาเหตุที่ทำให้การอัปโหลด AF ล้มเหลวอย่างที่สุด แต่เสร็จสมบูรณ์ด้วย ASI) การรับรองความถูกต้องไม่ใช่ปัญหากับ AFnetworking สำหรับวิธีการตรวจสอบสิทธิ์ที่ซับซ้อนคุณสามารถย่อยการดำเนินการและทำการโทรของคุณเองได้และ AFHTTPClient จะทำให้การรับรองความถูกต้องขั้นพื้นฐานกลายเป็นเค้ก ด้วยคลาสย่อยของ AFHTTPClient คุณสามารถสร้างผู้ใช้บริการทั้งหมดได้ในเวลาอันสั้น
ไม่ต้องพูดถึงส่วนเพิ่มเติม UIImage ที่จำเป็นอย่างยิ่งที่ AFNetworking นำเสนอ ด้วยบล็อกและบล็อกการทำให้เสร็จสมบูรณ์แบบกำหนดเองและอัลกอริทึมที่ชาญฉลาดคุณสามารถสร้างมุมมองตารางด้วยการดาวน์โหลดภาพแบบอะซิงโครนัสและการเติมเซลล์ได้อย่างง่ายดายในขณะที่ใน ASI คุณต้องจัดคิวการดำเนินการเพื่อควบคุมปริมาณแบนด์วิดท์และจำตัวเองเพื่อยกเลิกและดำเนินการต่อคิวการดำเนินการต่อตาม การมองเห็นมุมมองตารางและสิ่งต่างๆเช่นนั้น เวลาในการพัฒนาการดำเนินการดังกล่าวลดลงครึ่งหนึ่ง
ฉันยังรักบล็อกความสำเร็จและความล้มเหลว ASI มีเพียงบล็อกที่สมบูรณ์ (ซึ่งจริงๆแล้วเป็นบล็อกที่สมบูรณ์ของ NSOperation) คุณต้องตรวจสอบว่าคุณมีข้อผิดพลาดในการดำเนินการเสร็จสิ้นหรือไม่และดำเนินการตามนั้น สำหรับบริการเว็บที่ซับซ้อนคุณอาจหลงทางใน "ifs" และ "elses" ทั้งหมด ใน AFNetworking สิ่งต่างๆนั้นเรียบง่ายและใช้งานง่ายกว่ามาก
ASI นั้นยอดเยี่ยมในช่วงเวลานั้น แต่ด้วย AF คุณสามารถเปลี่ยนวิธีจัดการบริการบนเว็บได้อย่างสมบูรณ์ในรูปแบบที่ดีและทำให้แอปพลิเคชันที่ปรับขนาดได้ง่ายขึ้น ฉันเชื่อจริงๆว่าไม่มีเหตุผลใดที่จะยึดติดกับ ASI อีกต่อไปเว้นแต่คุณต้องการกำหนดเป้าหมายเป็น iOS 3 และต่ำกว่า
ASIFallbackToCacheIfLoadFailsCachePolicy
ดีมาก และฉันคิดว่า AFNetworking ไม่มีการรองรับแคชถาวร นี่คือการไม่ไปสำหรับฉัน