티스토리 뷰
C#에서 Request에 대한 응답 오류를 출력하려고 했지만
Exception 객체를 catch해서 Message를 출력해봐도 Web Server에서 내뱉는 오류를 출력할 수 없었다.
Request를 보낸 뒤, Response 객체에 스트림을 불러오려고 하는 경우 프로그램이 죽어버리는 현상이 발생한다.
4XX 오류는 클라이언트가 잘못된 요청으로 발생한 오류라고는 하지만
Web Server 자체에서 Response Status Code를 강제로하여 오류를 뱉을 수도 있다.
방법은 간단하다.
4XX 오류가 발생했을 경우 WebException 객체에서 Response를 이용하여 WebServer에서 내뱉는 오류를 확인할 수 있다.
javscript에서는 그냥 출력하면 되는데 C#에서는 조금 달랐던거 같다.
catch (WebException ex)
{
using (var stream = ex.Response.GetResponseStream())
{
using (var streamReader = new StreamReader(stream))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
댓글