2012-10-12 2 views
0

나는 JSON 객체를 반환하는 PHP RESTful API를 가지고있다. 서버 측에 문제가 발생했을 경우 나는 내가 API의 흐름을 변경하려면 다음 API는 "거짓"는 booleanic 응답안드로이드 PHP 예외에서 던져 예외를 잡는 방법

을 돌려 지금까지 그 API

에서 REST 요청을 요청하는 안드로이드 클라이언트가 그래서 "false"를 포함하는 JSON 응답을 보내지 않고 Exception을 던져서 안드로이드 측에서 예외를 잡아 내고 싶습니다.

이 이

이 그것을 할 수

try { 
    php_api.getUsers(); 
} catch (Exception ex) { 
    // TODO 
} 
:

그래서 기본적으로, 나는 다음과 같은 안드로이드 코드 같은 것을 싶어? PHP 예외가 이런 방식으로 발견됩니까?

+0

no. 자바 예외는 java를위한 것이며, php로 전송되지 않으며 특히 http를 통해 전송되지 않습니다. 결과가 false이면 여전히 Java 측에서 예외를 throw 할 수 있습니다. – njzk2

+0

나는 다른 길을 의미했다. PHP 예외가 어떻게 든 Java에 잡힐 수 있습니까? – Chaiavi

+1

도 마찬가지입니다. 당신이 할 수있는 일은 java에서 가져 오는 값을 보내고, 그 결과 예외를 throw합니다. – njzk2

답변

1

Java로 작업 한 적이 없지만 사용자가 그렇게 할 수 있다고 생각하지 않습니다. PHP는 예외를 throw 할 때 예외 처리를 설정하는 방법에 따라 일종의 출력을 생성합니다. 스택 추적 또는 이와 유사한 예외 메시지가 표시 될 수 있습니다. 그러나 클라이언트 (Java 응용 프로그램) 측면에서 이것은 텍스트 이상입니다.

그러나 휴식 응답에는 항상 확인할 수있는 헤더가 있어야합니다. 이것 좀 봐 : http://blog.zenika.com/index.php?post/2011/05/18/Error-handling-with-REST

거기에 쓰여진 내용을 따르면 Java-to-PHP API는 콘텐츠를 반환하기 전에 항상 응답 헤더를 읽습니다. 500이나 400이 나타난다면 API를 사용하는 코드에서 잡을 수있는 자바 예외를 던질 것입니다.

PHP 측에서 원하는 헤더를 보내지 않는 경우 사용자 지정 출력 (헤더 포함)을 생성하기 위해 PHP의 error/exception 처리를 항상 무시할 수 있습니다.

관련 문제