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

안드로이드에서 HttpClient로 보낸 값 WebView로 보여주기

0 추천
안드로이드에서 HttpClient(POST)로 asp 페이지에 값을 보내고

asp 페이지는 값을 받아서 화면에 뿌려주는걸 구현하려고 합니다.

asp쪽에서 값을 받아서 파일로 저장해본 결과 값은 잘 가는데 화면에 뿌려지진 않습니다.

안드로이드에서 데이터 전송 -> asp에서 받아서 -> WebView로 팝업이 뜨는 asp페이지를 뿌리는 식으로 구현을 해놨습니다.

근데 값이 뿌려지지가 않네요.. 텅빈 화면만 뜹니다 ㅠ

왜 그런걸까요..?
donna (230 포인트) 님이 2014년 7월 3일 질문
donna님이 2014년 7월 3일 수정

1개의 답변

0 추천
음...값을 받아오는건 문제가 없으신가요? 값은 받아오는데 팝업이 이상하면 팝업쪽 살펴보시고 아예 값을 못받아오면 포스트 하기전에 get으로 먼저 시도해 보시고 컴퓨터 브라우저에서 확인하고 값이 정상적으로 나온다 싶으면 안드로이드에서 값을 받아와보시기 바랍니다. 그래도 값이 안들어오면 네트워크 접속 부분 코드를 잘 살펴보시거나 코드를 올려주세요ㅎ
YeonMin (17,860 포인트) 님이 2014년 7월 3일 답변
값은 잘 가는걸 확인했어요.. webview로 띄웠을 때 안드로이드에 보낸 값이 webview에 안나옵니다 ㅠ
웹뷰쪽 소스를 볼 수 있을까요?
private void loadWeb() {
        wv = (WebView) findViewById(R.id.webView1);
        wv.getSettings().setJavaScriptEnabled(true);
        wv.setWebViewClient(new mWebViewClient());        wv.setWebChromeClient(new WebChromeClient() {
            @Override
            public boolean onJsAlert(WebView view, String url, String message,
                    final JsResult result) {
                new AlertDialog.Builder(view.getContext())
                        .setTitle("AlertDialog")
                        .setMessage(message)
                        .setPositiveButton("OK",
                                new AlertDialog.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog,
                                            int which) {
                                        result.confirm();
                                    }
                                }).setCancelable(false).create().show();
                return true;
            }
        });
        wv.loadUrl(url);
    }
   
    private class mWebViewClient extends WebViewClient{
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return super.shouldOverrideUrlLoading(view, url);
        }
    }
지금 단순 url로딩을 하고 있습니다..post전달은 어디서 하나요...? postUrl을 http://it77.tistory.com/118http://nyolong.egloos.com/2217207 여길 참고하셔서 구현해 보시기 바랍니다.
HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(url);
       
        ArrayList<BasicNameValuePair> param = new ArrayList<BasicNameValuePair>();
        param.add(new BasicNameValuePair("data", "test....."));

        HttpParams params = client.getParams();
        HttpConnectionParams.setConnectionTimeout(params, 5000);
        HttpConnectionParams.setSoTimeout(params, 5000);

        try {
            post.setEntity(new UrlEncodedFormEntity(param, "euc-kr"));
            client.execute(post);
        } catch (Exception e) {
            Log.d("Debug", e.toString() + "----error");
        }

이게 data 전송 부분입니다.
전송한 후 다음 activity로 intent해서 webview를 보여주게 해놨습니다.
알려주신 주소는 이미 참고를 해봤지만.. asp쪽에서 어떻게 처리해야하는지를 모르겠습니다;;
보낸다는 의미에선 제가 구현해놓은 방식이랑 별 차이가 없어보이기도 하구요..
웹뷰와 httpClient전송은 별개입니다. 정 결과값을 받아오고 싶으시면 httpClient로 전송후 값을 리턴받아서 webView의 loadData로 뿌려주셔야 할겁니다.
하하 ㅠㅠ.... 네 .... 알려주신 방법 참고해서 해보도록 하겠습니다.
...