2017-03-06 3 views
2

나는 개조 작업에 어려움을 겪고 있습니다. 브라우저에 요청을 게시하면 다음과 같은 요청을받습니다. enter image description here개조의 응답에서 json 받기 errorBody

그게 내가 원하는 것입니다. 그러나, 내 애플 리케이션에서 이것을 구문 분석하려고하면 this 스레드에서 응답을 계속했다. this 솔루션을 구현하려고 시도했지만 내 errorBody은 브라우저의 답변과 비슷하지 않습니다. enter image description here 이 JSON을 어떻게 구할 수 있습니까?

void handleResponse(Response response){ 
    TextView textView = (TextView)findViewById(R.id.empty_list_tv); 
    if(response.isSuccessful()) 
     textView.setText(response.toString()); 
    else { 
     Gson gson = new Gson(); 
     ErrorResponse errorResponse = gson.fromJson(
       response.errorBody().toString(), 
       ErrorResponse.class); 
     textView.setText(response.errorBody().toString()); 
    } 
} 

그리고 내 ErrorResponse :

public class ErrorResponse { 
    @SerializedName("message") 
    private String message; 
    @SerializedName("error") 
    private Error error; 

    public String getMessage() { 
     return message; 
    } 

    public Error getError() { 
     return error; 
    } 
} 
+0

'response.errorBody(). toString(),'JSON입니까? – Coder

+0

아니요. 적어도 인식 할 수 없습니다. "[email protected]" – gonczor

+0

JSON이 필요한 GSON의 fromJson에서'errorResponse'를 생성하려고합니다. 너 어디서 잘못 본거야? – Coder

답변

4

사용하는 toString() GSON의 fromJson에서 JSON에 만족하지

그냥 사건이 내 응답 핸들러 코드입니다. toString()string()으로 바꾸면 JSON 본문이 생깁니다. string() 메서드를 한 번만 사용하고 응답을 변수에 저장하십시오. 다시 사용하면 빈 문자열이 반환되므로 응답을 변수에 저장하십시오.

+0

이 방법이 효과적 이었지만,'string()'메서드를 두 번 호출하면 빈 문자열이 반환됩니다. –

+0

@KhalidTaha 메서드를 두 번째로 호출 할 때 정확히 무엇을 의미합니까? 좀 더 정교해질 수 있니? – Coder

+0

'string()'메서드를 처음 호출하면 올바른 문자열을 반환하지만, 다른 문자열을 한 번 호출하면 빈 문자열이 반환됩니다. –

관련 문제