Ai đó có thể giúp xóa bỏ việc sử dụng thuộc tính "StatusCode" trong HttpWebResponse và WebException không?C# HttpWebRequest.GetResponse - cách sử dụng StatusCode được xử lý như thế nào cho một phản ứng ngoại lệ so với ngoại lệ?
Ví dụ có vẻ như nếu:
a) không có ngoại lệ, sau đó các HttpWebResponse sẽ có một StatusCode rằng có thể có một số giá trị mà chỉ ra cả hai: - thành công (ví dụ như OK, Accepted vv) - thất bại (ví dụ UseProxy, RequestTimeout vv)
b) có một ném WebExeption, mà chính nó có một đối tượng phản ứng đó một lần nữa có một StatusCode (mà tôi giả định được dựa trên Enumeration HttpStatusCode cùng.
Câu hỏi 1 - Có bất kỳ sự nhất quán nào về những gì StatusCode sẽ kích hoạt một WebException (và bạn sẽ nhận được chi tiết trong ngoại lệ), so với thứ sẽ trở lại mà không có ngoại lệ, nhưng bạn sẽ tìm ra kết quả trong StatusCode của đối tượng phản hồi?
Câu hỏi 2 - Hoặc cụ thể hơn mã pseduo (hoặc C# mã riêng của mình) cho cố gắng để xử lý một cuộc gọi httpWebRequest.GetResponse như vậy mà bạn muốn phân biệt giữa các loại phản ứng cho người sử dụng là những gì:
cài đặt proxy/vấn đề ủy quyền => như vậy có thể nói với người sử dụng để sửa chữa cài đặt proxy kết nối
vấn đề/web-server xuống => nên dùng biết về các
nàylỗi phía máy chủ (ví dụ: máy chủ là có nhưng có một vấn đề xử lý yêu cầu - ví dụ như nội dung không có) => vì vậy người dùng có thể nâng cao với người quản lý trang web
trường hợp thành công (và tôi giả định này sẽ là nhiều hơn chỉ là OK) => na (trường hợp thành công)
nhờ
Nhưng có bao nhiêu mã trả lại có thể có cho trường hợp ngoại lệ khi bạn nhận được phản hồi trực tiếp? Có một số mã phản ứng khác nhau trong phạm vi 200 chẳng hạn. Hoặc là phản ứng đầu tiên đúng ở đây trong đó chỉ có 200 hoặc 0 là có thể cho trường hợp ngoại lệ không? – Greg
Đã cập nhật câu trả lời. – ata
Cảm ơn - vì vậy điều này có nghĩa là tôi giả sử bạn có thể het ví dụ: phản hồi thành công (tức là không có ngoại lệ) nhưng Mã trạng thái là 300 nơi tổng thể thì đó vẫn là vấn đề cho người dùng? Đó là sau đó để kiểm tra sự thành công thực sự bạn cần phải kiểm tra cho WebException + kiểm tra mã trạng thái trong phạm vi 200 sau đó? – Greg