我一直在網上搜索一種方法來執行此操作大約一週,而我似乎無法弄清楚。在Android應用程序中使用POST數據提交表單
我試圖實施一個應用程序,我的大學可以使用它來允許用戶輕鬆登錄校園中的各種服務。它目前的工作方式是進入在線門戶,選擇他們想要的服務,填寫他們的用戶名和密碼,然後點擊登錄。表單數據通過發佈(包括幾個隱藏值以及用戶名和密碼)發送到相應的登錄腳本,然後登錄腳本簽入並加載服務。
我一直試圖用兩種方式來解決這個問題。我第一次嘗試了一個WebView,但它似乎並不想支持所有通常使這個表單工作的html。我得到了我需要的所有元素,用戶和密碼的字段以及登錄按鈕,但單擊該按鈕不會執行任何操作。我想知道是否需要爲它添加一個onclick處理程序,但我無法看到該按鈕是如何在webview的html中實現的,而不是使用單獨的android元素。
另一種可能性是使用xml小部件來創建一個漂亮的相對佈局,這似乎加載速度更快,在android屏幕上看起來更好。我使用EditText字段作爲輸入,爲服務選擇使用微調控件,並使用登錄按鈕構件。我知道如何分別爲button和spinner創建onclick和item select處理程序,但我無法弄清楚如何通過POST發送該數據,然後啓動瀏覽器。我可以對動作url做一個意圖,但不能獲取POST數據。
因此,這裏是我現在...
HttpParams params = new BasicHttpParams();
HttpClient client = new DefaultHttpClient(params);
HttpPost post = new HttpPost(action);
String endResult = null;
try
{
post.setEntity(new UrlEncodedFormEntity(myList));
}
catch (UnsupportedEncodingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
try
{
String response = client.execute(post, new BasicResponseHandler());
endResult = response;
}
catch (ClientProtocolException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
所以我的問題,現在......是我怎麼走endResult屏幕,這應該我登錄到後返回的頁面我服務,並顯示在瀏覽器中?
如果我不想打開一個瀏覽器上提交表單,而只是從服務器獲取JSON響應,而在另一個活動顯示它,我應該只是做client.execute(發佈,新的BasicResponseHandler)如上? – Namratha 2013-01-17 05:53:16