안드로이드 Volley 질문드립니다.

조회수 936회
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
TextView tv;
String url;
StringRequest stringRequest;
String data;
public static RequestQueue requestQueue;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv = findViewById(R.id.tv);

    url = "http://openapi.airkorea.or.kr/openapi/services/rest/MsrstnInfoInqireSvc/getNearbyMsrstnList?tmX=244148.546388&tmY=412423.75772&pageNo=1&numOfRows=10&ServiceKey=P7D382pxAC1BmoMRsbrVGYmWh%2FvoZ4HQsAf5Z%2BsPAyWlVUpe178UHS%2BekKoLR2k%2Bo7V5B5lZV71p8fIMMBiHAQ%3D%3D&_returnType=json";
    if (requestQueue == null) {
        requestQueue = Volley.newRequestQueue(getApplicationContext());
    }
    responseVolley(url);
    Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
}

public void responseVolley(String url){
    String result = null;
    stringRequest = new StringRequest(
            com.android.volley.Request.Method.GET
            , url
            , new com.android.volley.Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            processResponse(response);
        }
    }, new com.android.volley.Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("volleyError", error.getMessage());
        }
    }
    );
    stringRequest.setShouldCache(false);
    requestQueue.add(stringRequest);


    return;
}

public void processResponse(String response){
    Gson gson = new Gson();
    DustList dustList = gson.fromJson(response, DustList.class);
    list lists = dustList.list.get(0);
    data = lists.stationName;
    Log.d("onResponse", data);
    println(data);

}

public void println(String sta) {
    tv.setText(sta);
}
}

왜 String data에 Gson data가 담기지 않는걸까요 Toast를 출력해도 null입니다...

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 해당 URL 을 호출해보니 INVALID PARAMETER ERROR 가 발생하는데 올바른 response 를 받지 못하고 있는 것 같습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • URL 수정 완료했어요!! 알 수 없는 사용자 2018.8.3 17:07
    • 확인 했습니다. 정상적으로 onResponse() 는 호출 되시나요? 알 수 없는 사용자 2018.8.3 17:20
    • 네 정상적으로 호출되서 Log.d("onResponse", data); 찍히는거까지 확인했습니다~ 알 수 없는 사용자 2018.8.4 10:09
    • 혹시 파싱 단계에서 logcat 에 gson 관련 exception 이 발생하거나 하지 않나요? 알 수 없는 사용자 2018.8.6 14:00
    • 아니요 exception 발생되지 않아요~~ 알 수 없는 사용자 2018.8.9 13:00
    • 음.. onResponse() 에서는 정상적으로 데이터를 받고 있는데 파싱 후 로그로 출력한 결과가 null 이라면 파싱 단계에서 문제가 있는거 밖에는 생각 되지 않네요 ㅠㅠ 알 수 없는 사용자 2018.8.9 13:13
    • 해결했습니다~processResponse(String response) return하여 처리 하니 잘작동됩니다~ 알 수 없는 사용자 2018.8.9 13:53

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)