[WebGet] 속성을 사용하여 웹 서버의 REST API를 쿼리하고 있습니다. 모든 경우에 (API가 아직 개발 중이므로) 필자는 원하는 XML 대신 HTTP/500 오류 형식으로 HTML 문서를 가져옵니다. 여기 WCF의 WebGet 속성을 사용할 때 HTTP 오류를 어떻게 catch합니까?
내 작업 계약의 예 :[WebGet(UriTemplate = "search/?api_key={key}&query={query}",
BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
XElement Find(string key, string query);
... 그리고 여기에 내가 전화하는 방법은 다음과 같습니다 에러가 발생
var factory = new WebChannelFactory<IFooFinder>(
new Uri("http://api.example.com"));
var channel = factory.CreateChannel();
var results = channel.Find(myApiKey, "foo");
를, "결과"는 인 끝 이 XML이 포함 된 XElement :
<html>
<head></head>
<body>
500 Internal Server Error
</body>
</html>
XML이 반환되기 전에 500 오류를 잡을 수있는 방법이 있습니까? 채널에 예외가 발생 했습니까? 아니면 매번 결과 변수를 검사하여 예상되는 XML이 있는지 확인해야합니까?
Marc. 모욕을 가하기 위해, 내가 말하는 REST API는 오류가있을 때 실제로 200/OK를 반환하고 HTML의 오류 메시지 만 제공한다고 생각합니다. 자세한 내용은 해당 담당자에게 문의해야합니다. –