Tôi đang cố gắng đặt thời gian chờ thành đối tượng HttpClient
trong Ứng dụng Windows Phone. Nhưng nếu yêu cầu không được hoàn thành trước khi hết thời gian chờ, GetAsync
không bao giờ trả về giá trị.HttpClient treo khi hết thời gian chờ (Windows Phone)
Tôi đang sử dụng đoạn mã sau để có được câu trả lời:
HttpClientHandler handler = new HttpClientHandler();
HttpClient client = new HttpClient(handler);
client.Timeout = TimeSpan.FromSeconds(5);
client.BaseAddress = new Uri("http://www.foo.com");
HttpResponseMessage response = await client.GetAsync("/boo.mp3");//<--Hangs
byte[] data = await response.Content.ReadAsByteArrayAsync();
Làm thế nào tôi có thể thiết lập đúng thời gian chờ để có được kết quả từ GetAsync?
Bạn gọi phương pháp này chính xác như thế nào? Bạn không sử dụng 'Wait()' hay 'Result'? – svick
Tôi gặp vấn đề tương tự. Trong trường hợp của tôi, tôi đã thử..catch() bao quanh tất cả mọi thứ trong công việc, trên nhiều cấp độ, và tất cả các bản ghi, ngay cả giữa mỗi bước. Tôi có phương thức trả lại Task, và sau đó tôi đăng nhập, sau đó tôi .Wait() trên đó. Tôi đang sử dụng thời gian chờ mặc định (mà tôi đoán là 100 giây?). Nếu cuộc gọi GetAsync() mất quá nhiều thời gian để dịch vụ web phản hồi, nó sẽ không bao giờ quay trở lại. Nó không đánh bất kỳ sản phẩm khai thác nào. Nó không chạm vào dòng tiếp theo (đó là một bản ghi). Nó cứ treo mãi mãi. – Thought