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

OkHttp 사용중인데 request가 안날라갑니다.

0 추천

현재 갤러리에서 이미지를 선택후 realPath를 가져다가 okhttp로 멀티파트 이미지 업로드를

구현하려고 하는데 jsp페이지로 리퀘스트 자체를 못날리는것 같습니다.

소스는 아래와 같습니다.

public void post() throws Exception {
        
        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("imageTitle", "Front Image")
                .addFormDataPart("uploadFile", "test.jpg", RequestBody.create(MEDIA_TYPE_JPG, new File(selectedImagePath)))
                .build();

        Request request = new Request.Builder()
                .url("http://192.168.0.30:9090/imageUpload.jsp")
                .post(requestBody)
                .build();

        Response response = client.newCall(request).execute();
        if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

        System.out.println("_____>> " + response.body().string());
}

http://192.168.0.30:9090/imageUpload.jsp 이게 멀티파트 폼을 받아서 서버에 저장해주는 페이지인데

이클립스에서 서버 콘솔을 확인해 보면 이 페이지 자체가 호출이 안됩니다.

폰 브라우저에서 직접 이 주소를 호출하면 잘 되는데 왜그런지를 모르겠네요.

동일 네트워크상에서 와이파이로 테스트 하고 있습니다.

일단 이 함수자체는 정상적으로 호출이 되는걸 확인했는데 리퀘스트를 못날리네요.

참고로 okhttp 레시피에 있는 imgur.com으로도 해봤는데 동일합니다.

혹시 이유가 뭔지 짐작할 수 있을까요?

플래쉬랑 자바스크립트만 하다가 안드로이드 하려니 도무지 감을 못잡겠네요.

사이타마 (1,090 포인트) 님이 2016년 6월 24일 질문

1개의 답변

0 추천
위 소스상으로는 OkHttpClient 는 안보이지만 당연히 만드셨으니 날리셨겠죠.

그거 아니곤 이상없는듯 보입니다. 먼저 권한설정 매니페스트에서 네트워크랑 파일쓰기 열어두셨는지요?

그리고 해당 jsp 파일 구현이 잘되어있는지 확인해보시구요.

가장 확실하고 좋은 방법은, 일단 가상머신으로 App 돌려보는데, 포트포워딩 설정해서 192.. 로

사설망 ip로나가게 하지말고 본래 ip로 설정해서 보내봅니다. 이때 와이어 샤크같은거 다운받아서

port나 ip 필터로잡고 packet 보시는게 확실합니다. 제가 현재 그런식으로 작업하구 있구요.
DevAndC (680 포인트) 님이 2016년 6월 24일 답변
클라이언트 만들었고, 퍼미션도 확실히 주었습니다.
JSP는 그냥 웹페이지로 테스트했을때 저장하는것까지 잘되구요.
와이어 샤크가 네트웍 분석하는 프로그램인가 보군요.
검색해서 한번 사용해보겠습니다. 감사합니다.
...