마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

HttpURLConnection, 응답으로 json원하는데 html이 옵니다.

0 추천
public String doInBackground(String... params){

    try{

        URL obj = new URL(url);

        StringBuilder outputStringBuilder = new StringBuilder();

        //연결 세팅
        HttpURLConnection conn = (HttpURLConnection)obj.openConnection();
        conn.setConnectTimeout(10000);
        conn.setReadTimeout(10000);

        conn.setRequestMethod("GET");
        conn.setRequestProperty("Accept", "application/json");
          conn.connect();

        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
        String line;
        while((line = br.readLine()) != null){
            outputStringBuilder.append(line);

        }
        //서버에서 주는 것이 JSON 배열임. 그래서 JSONArray 형태로 만듬.
        returnValue = outputStringBuilder.toString();

        Log.d("메시지","리턴값 "+returnValue);


        //  Log.d("메시지","=============================================");
        return returnValue;

 

결과 : <!DOCTYPE html><html><head><title></title><link rel="stylesheet" href="/stylesheets/style.css"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script></head><body><header><h1>Green Mate</h1><ul><li><a href="/">Home</a></li><li><a href="/mypage/">MyPage</a></li><li><a href="/signup/">Sign Up</a></li><li><a href="/login/">Login</a></li></ul></header><h1>Login</h1><form action="/login/" method="POST"><input type="text" name="username" placeholder="email" required><input type="password" name="password" placeholder="password" required><input type="submit" value="submit"></form><!-- form(action="/auth/facebook/" method = "GET") --><!--     input( type='checkbox'  name='keepLogin') --><!--     | Keep logging in--><!--     input(type="submit" value="Log-in with facebook")--><button onclick="location

 

코드에서

conn.setRequestProperty("Accept", "application/json");

이 있다는 것은

BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));

을 통해서 json형식만 받는다는 것 아닌가요?

 

그런데.. 결과로 html을 읽어들이네요

익명사용자 님이 2016년 11월 11일 질문

1개의 답변

0 추천
serRequestProperty는 헤더 파라미터 추가를 의미합니다.

서버에서 "Accept"에 대한 파라미터 값은 조건으로

respones값을 분기해서 내려주도록 되어 있어야 원하시는 결과를 얻을 수 있습니다.
Development Guy (70,570 포인트) 님이 2016년 11월 11일 답변
...