[英]AWS Identity TVM registration from android
在Identity TVM注冊中,可以直接通過我的應用程序獲取用戶的用戶名和密碼(因為用戶必須注冊才能使用我的應用程序),而不是將用戶重定向到Identity TVM register.jsp進行注冊,而是發送給Identity TVM注冊以獲取注冊。 如果是,該怎么辦?
我有同樣的問題。 我想到的答案是從您的應用程序內發送HTTP Post請求,該請求復制注冊表單上發生的事情。
您將需要創建一個捕獲用戶名和密碼的新布局(我復制了文件login_menu.xml,將其重命名為register_menu.xml並更改了一些小部件ID)
在原始的Login.java文件中,我將“注冊”按鈕的onclick動作更改為重定向到我稱為Register.java的新活動。
在Register.java中,我使用register_menu.xml作為布局文件,當人們單擊register按鈕時,將運行以下代碼(它從AsyncTask中運行):
String registration_url = (PropertyLoader.getInstance().useSSL() ? "https://" : "http://") + PropertyLoader.getInstance().getTokenVendingMachineURL() + "/registeruser";
URL url = new URL(registration_url);
Map<String,Object> params = new LinkedHashMap<String,Object>();
params.put("username", username);
params.put("password", password);
StringBuilder postData = new StringBuilder();
for (Map.Entry<String,Object> param : params.entrySet()) {
if (postData.length() != 0) postData.append('&');
postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
postData.append('=');
postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
byte[] postDataBytes = postData.toString().getBytes("UTF-8");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setInstanceFollowRedirects(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
conn.setUseCaches (false);
conn.getOutputStream().write(postDataBytes);
conn.getOutputStream().flush();
response = conn.getResponseCode();
Log.d(DEBUG_TAG, "The response is: " + response);
return response;
我從其他StackOverflow帖子中獲得了一些代碼,這些代碼與如何使用Java生成HTTP帖子( Java-通過POST方法輕松發送HTTP參數 )以及從Android Dev站點中獲取了一些有關網絡連接最佳做法的代碼( http://developer.android .com / training / basics / network-ops / connecting.html )
這應該可以幫助您開始自己的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.