WCF RESTful 서비스가 있으며 서버 및 다양한 클라이언트에서 오류를 처리하는 방법을 보여주고 자합니다. 이 서비스는 웹 (jQuery)과 iOS 제품 모두에서 액세스 할 수 있습니다. 여기에서 살펴이다 나는 서비스에 오류를 던지고있어 방법 :WCF REST Service 및 NOSrror를 사용한 iOS 오류 처리
[WebGet(UriTemplate = "get/{id}", ResponseFormat = WebMessageFormat.Json)]
public Person Get(string id)
{
//check security
if(!SecurityHelper.IsAuthenticated()) { throw new WebFaultException<PersonException>(new PersonException { Reason = "Permission denied." }, HttpStatusCode.Unauthorized); }
가 나는 등 같은 서비스를 호출하는 jQuery를 사용할 수 있습니다
$.ajax({
type: "GET",
dataType: "json",
url: "/person/get/123",
success: function(data) {
alert('success');
},
error: function(xhr, status, error) {
alert("AJAX Error!");
alert(xhr.responseText);
}
});
});
을 ... 모든 것이 잘 작동 - 전화 (인증을 제공하지 않았으므로) 오류가 발생하고 콜백이 호출됩니다. 오류 콜백에서 xhr.responseText를 검사 할 때 서버에서 제공 한 오류 이유를 나타내는 올바른 JSON 개체 ({ "이유": "사용 권한이 거부되었습니다!"})가 나타납니다.
지금 - 나는 같은 서비스를 호출하기 위해 함께 내 iOS 앱을 넣어려고 모든 것을 내가 서비스에 의해 공급 된 오류 정보를 얻을 수 제외 뿐만 아니라 거기에서 큰 노력하고 있습니다. 여기에 내가 아이폰 OS에서 REST 서비스에 대한 내 전화에있는 코드는 다음과 같습니다. "작업을 완료 할 수 없습니다"와 같은 난 단지 일반적인 메시지를 받고있어 error.description에서
//set up for any errors
NSError *error = nil;
//set up response
NSURLResponse *response = [[NSURLResponse alloc] init];
//make the request
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
//check for error
if(error)
{
//debug
NSLog(error.description);
//send back error
return error;
}
else
{
은
서버에서 보낸 사용자 지정 오류 정보를 얻으려면 어떻게해야합니까? 나는 NSError 클래스의 userInfo 속성을 살펴 봤지만 맞춤 정보를 얻을 수 있는지 파악할 수 없으며, 그렇다면 어떻게하는지에 대해 알 수 없습니다.
미리 도움을 청하십시오.
네는 확인하고는 확실하다. 대단히 고마워요 ... 고맙습니다. –