안녕하세요. 이번에 웹앱을 만들게 되었는데요.
Webview 에서 post 방식의 request 객체 얻어오는 방법에 대해 질문있습니다.

앱 자체는 기능을 최소화하여서 거의 웹뷰를 띄워주는 역할밖에 하지 않고요.
자동 로그인 기능을 구현하려고 합니다.
그런데 로그인 페이지에서(물론 웹 페이지입니다.) input 박스에 입력한 값을 post 형태로 넘기기 때문에
그 값을 가져오는 방법을 알고 싶습니다.
웹 페이지는 php로 짜여져있습니다.

wv_all = (WebView) findViewById(R.id.main_wv_all);
wv_all.setWebViewClient(new MainWebView());
wv_all.loadUrl(url);

로 화면을 띄운 다음에

class MainWebView extends WebViewClient

여기에서 onPageStarted 나 shouldOverrideUrlLoading 에서 url 을 받는데까지 했는데요.

페이지에서 get 방식일때는

String id = Uri.parse(url).getQueryParameter("id");
String name = Uri.parse(url).getQueryParameter("pw");

와 같이 parameter를 받아올 수 있었는데

post 방식으로 loginform으로 감싸서 넘길때는 어떻게 해당 parameter를 가져와야할지 모르겠습니다.

request 객체를 가져올 수 있으면 request 객체의 body에서 값을 빼낼수 있을 것 같은데 방법을 모르겠네요..

웹에서 많이 찾을 수 있는 HttpURLConnection 을 이용하여 post 형식으로 값을 서버에 던진 후 request를 받는 것은

찾았는데 제가 하려는 것은 그것과는 좀 다르게

웹 페이지는 웹뷰에서 띄워놓고 웹페이지에서 버튼 클릭 등으로 값이 변했을때를 캐치해서 값을 가져오려고 하는 건데요.

이런 방식으로 request 객체를 가져오는 것이 가능할까요?

만약 불가능하다면 웹페이지의 버튼 클릭 이벤트 같은걸 잡아서 처리해야하나요?

읽어주셔서 감사하고 아시는 분은 답변을 부탁드립니다 ㅜ.ㅜ


 WebView wv_all;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  wv_all = (WebView) findViewById(R.id.main_wv_all);
  
  //안드로이드웹킷으로 인터넷 실행
  wv_all.setWebViewClient(new MainWebView());
  
  WebSettings ws = wv_all.getSettings();
  ws.setJavaScriptEnabled(true);
  ws.setBuiltInZoomControls(true);
  
  String url = " url 주소";
  
  wv_all.loadUrl(url);
 }
    
 // 웹페이지가 바뀔 때 컨트롤 하는 부분
 class MainWebView extends WebViewClient{
  
  @Override
  public void onPageStarted(WebView view, String url, Bitmap favicon) {
   // TODO Auto-generated method stub
   super.onPageStarted(view, url, favicon);
   
   Log.d(TAG, "onPageStarted url : " + url );
  }
  
  @Override
  public void onReceivedHttpAuthRequest(WebView view,
    HttpAuthHandler handler, String host, String realm) {
   // TODO Auto-generated method stub
   super.onReceivedHttpAuthRequest(view, handler, host, realm);
   
   Log.d(TAG, "onReceivedHttpAuthRequest url : " + host + " , " + realm );
  }
  @Override
  public void onUnhandledKeyEvent(WebView view, KeyEvent event) {
   // TODO Auto-generated method stub
   super.onUnhandledKeyEvent(view, event);
   
   Log.d(TAG, "onUnhandledKeyEvent url : " + event + " , " + event.getAction() );
  }
  
  @Override
  public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
   
   Log.d(TAG, "shouldOverrideKeyEvent url : " + event + " , " + event.getAction() );
   
   // TODO Auto-generated method stub
   return super.shouldOverrideKeyEvent(view, event);
  }
  
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url){
   
   Log.d(TAG, "shouldOverrideUrlLoading url : " + url );
   
   //login 처리부
   if (url.indexOf("login")>0) {
    Log.d(TAG, "login");
    
    String id = Uri.parse(url).getQueryParameter("log");
    String name = Uri.parse(url).getQueryParameter("pwd");
    String action = Uri.parse(url).getQueryParameter("action");
    Log.d(TAG, "id " + id);
    Log.d(TAG, "name " + name);
    if(action != null && action.equals("register")){
     view.loadUrl(url);
     return true;
    }
   }
   
   view.loadUrl(url);
   return true;
  }
 }