我有一個WCF RESTful服務,並試圖勾畫出我將如何處理服務器和各種客戶端上的錯誤。該服務將可以從網絡(jQuery)和iOS產品訪問。下面來看看我是如何上的服務引發錯誤:WCF REST服務和iOS錯誤處理與NSError
[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);
}
});
});
...一切的偉大工程 - 呼叫並且引發錯誤(因爲我沒有提供任何身份驗證)並且調用了錯誤:callback。在我檢查xhr.responseText的錯誤回調中,我得到了正確的JSON對象({「reason」:「Permission denied!」}),顯示了服務器提供的錯誤原因。
現在 - 我試圖把我的iOS應用程序調用相同的服務,一切都從那裏除了偉大的工作,以及我不能得到由服務提供了該錯誤的詳細信息。下面是我在我透過iOS調用REST服務代碼:「操作無法完成」
//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
{
在error.description我只得到一個通用消息像
如何獲取服務器發送的自定義錯誤信息?我一直在尋找NSError類的userInfo屬性,但無法弄清楚我是否可以獲取自定義信息,如果可以,我該如何去做。
在此先感謝您的幫助。
是的只是檢查和可以肯定的是。非常感謝...我欣賞它。 –