0
웹 서버에 웹 요청을하기 위해 중고품 HttpClient (C#)를 사용하고 있습니다. 서버가 200 (또는 202 상상) 이외의 값을 반환하면 내 요청에서 TTransport 예외가 발생합니다.TTransport 예외에서 HTTP 상태 코드를 얻으려면 어떻게해야합니까?
반환되는 특정 상태 코드를 기반으로이 예외에 응답하고 싶습니다. 그러나 예외 인터페이스에서 상태 코드를 노출하는 것을 볼 수 없습니다. 내가 놓친 게 있니? 예외 메시지에 상태 코드가 포함되어 있음을 알고 있지만 상태 코드를 얻기 위해 해당 메시지를 구문 분석하지 않아도됩니다.
재미있는 질문입니다. 일반적인 사용 사례는 기본 전송의 세부 사항을 추상화하여 교환 할 수 있도록하는 것입니다 (또는 유지하는 것이 좋습니다). 이것이 더러운 세부 사항이 TTransportException의보다 추상적 인 개념을 통해 반환되는 이유입니다. 귀하의 질문 뒤에있는 목적이 무엇인지 정확하게 물어보기를 바랍니다. – JensG
404 오류가 발생하면 내 앱이 서버가 다운되었다고보고하고 서버가 백업 될 때까지 앱의 기능 중 아무 것도 작동하지 않는다고보고합니다. 500 오류가 발생하면 서버에 방금 발급 된 특정 명령을 처리하는 데 문제가 있음을보고하고자합니다. 사용자에게 표시하고있는 메시지에 자세한 내용이 필요하지 않으며 예외 메시지가 출력되기 때문에 오류 로그에 상태 코드가 포함되어 있으므로이 상태로 살 수 있습니다. 나는 방금 HTTPClient가 TTransport의 구현에 특정한 속성을 가질 것이라고 생각했다. – BobbyA
'TransportException'의'Type' 필드를 확인하려고 했습니까? 404의 경우 이것은'EndOfFile'로 설정됩니다. 다른 오류가 발생하면 다른 오류가 발생합니다 (예 : 'Unknown '또는'TProtocolException'도 사용합니다. 최후의 수단은 메시지 텍스트에서 일부 키워드를 확인하는 것입니다.하지만 이는 다소 추한 것입니다. 위의 방법으로 문제를 해결할 수 있습니까? – JensG