2013-07-31 36 views
7

Lớp NSURLRequest (iOS docs, OS X docs) trong Cocoa có thuộc tính timeoutInterval. Tài liệu nhà nướcKhi nào một thời gian NSURLRequest ra?

Nếu trong khi kết nối thử yêu cầu không hoạt động lâu hơn khoảng thời gian chờ, yêu cầu được coi là đã hết thời gian chờ.

'nhàn rỗi' có nghĩa là gì, ở đây? Tốt nhất là tôi có thể nói, điều này có nghĩa là trong thực tế là nếu tôi đặt 3023 timeoutInterval 30 giây và gọi một phương thức gửi NSURLRequest, thì nếu cơ thể của phản hồi HTTP không trả lại 30 giây sau khi gửi yêu cầu, yêu cầu thời gian ra ngoài. Nhưng đó thực sự là những gì đang xảy ra?

Một vài điều tôi có thể nghĩ là có thể kích hoạt bộ đếm thời gian không hoạt động để đặt lại: nhận tiêu đề HTTP hoặc nhận phần cơ thể. Nhưng cái nào (nếu một trong hai) quan trọng trong thực tế?

Trả lời

1

Không có byte nào nhận được trong 30 giây sẽ là định nghĩa bình thường. Bạn sẽ có thể viết một máy chủ HTTP rất đơn giản (có các dự án mẫu trên tất cả) và chạy nó trên một cổng riêng, sau đó kết nối với nó để chứng minh nó cho chính mình.

Để mô phỏng thời gian trong máy chủ của bạn, chỉ cần thêm "40" hoặc một số hằng số vào byte mà bạn đang hứa hẹn khách hàng, vì vậy khách hàng sẽ chờ mãi cho 40 byte byte thêm vào cuối mà không bao giờ tới.

Các vấn đề liên quan