現在android studioでログイン機能を開発しております。
サンプルコードを基にログイン機能を書いておりましたが、
使用しているコードが現在非推奨のため、エラーになってしまいます。
大変恐れいりますが、ご教示いただけますでしょうか。
下記コードになります。
よろしくお願い致します。
(httpparamsが非推奨。)
java
1 protected Void doInBackground(Void... params) { 2 Map<String,String> dataToSend = new HashMap<>(); 3 dataToSend.put("name", user.name); 4 dataToSend.put("password", user.password); 5 6 7 String encodedStr = getEncodedData(dataToSend); 8 9 10 BufferedReader reader = null; 11 12 13 HttpParams httpRequestsParams = new BasicHttpParams(); 14 HttpConnectionParams.setConnectionTimeout(httpRequestsParams, CONNECTION_TIMEOUT); 15 HttpConnectionParams.setSoTimeout(httpRequestsParams, CONNECTION_TIMEOUT); 16 17 18 HttpClient client = new DefaultHttpClient(httpRequestsParams); 19 HttpPost post = new HttpPost(SERVER_ADDRESS + "FetchUserData.php"); 20 21 User returnedUser =null; 22 try { 23 post.setEntity(new UrlEncodedFormEntity(dataToSend)); 24 HttpResponse httpResponce = client.execute(post); 25 26 HttpEntity entity = httpResponce.getEntitiy(); 27 String result = EntityUtils.toString(entity); 28 JSONObject jObject = new JSONObject(result); 29 30 if(jObject.length() == 0){ 31 user = null; 32 }else{ 33 String name = jObject.getString("name"); 34 int age = jObject.getInt("age"); 35 36 returnedUser = new User(name, age, user.username, user.password); 37 38 } 39 40 41 }catch (Exception e){ 42 e.printStackTrace(); 43 44 } 45 46 47 return returnedUser; 48 } 49 50 @Override 51 protected void onPostExecute(User returnedUser) { 52 progressDialog.dismiss(); 53 userCallback.done(returnedUser); 54 super.onPostExecute(returnedUser); 55 } 56 }
--全体のコード--
package com.example.loginregister; import android.app.ProgressDialog; import android.content.Context; import android.net.http.HttpResponseCache; import android.os.AsyncTask; import android.provider.Settings; import android.util.Log; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class ServerRequests { ProgressDialog progressDialog; public static final int CONNECTION_TIMEOUT = 1000 * 15; public static final String SERVER_ADDRESS = "サーバー名"; public ServerRequests(Context context){ progressDialog = new ProgressDialog((context)); progressDialog.setCancelable(false); progressDialog.setTitle("Processing"); progressDialog.setMessage("Please wait..."); } public void storeUserDataInBackground(User user, GetUserCallback userCallback){ progressDialog.show(); new StoreUserDataAsyncTask(user, userCallback).execute(); } public void fetchUserDataInBackground(User user, GetUserCallback callBack){ progressDialog.show(); new fetchUserDataAsyncTask(user, callBack).execute(); } public class StoreUserDataAsyncTask extends AsyncTask<Void, Void, Void > { User user; GetUserCallback userCallback; public StoreUserDataAsyncTask(User user, GetUserCallback userCallback) { this.user = user; this.userCallback = userCallback; } @Override protected Void doInBackground(Void... params) { Map<String,String> dataToSend = new HashMap<>(); dataToSend.put("name", user.name); dataToSend.put("age", user.age + ""); dataToSend.put("username", user.username); dataToSend.put("password", user.password); String encodedStr = getEncodedData(dataToSend); BufferedReader reader = null; try { URL url = new URL(SERVER_ADDRESS + "Register.php"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("POST"); con.setDoOutput(true); OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream()); writer.write(encodedStr); writer.flush(); StringBuilder sb = new StringBuilder(); reader = new BufferedReader(new InputStreamReader(con.getInputStream())); String line; while((line = reader.readLine()) != null) { sb.append(line + "\n"); } line = sb.toString(); Log.i("custom_check", "The values received in the store part are as follows:"); Log.i("custom_check",line); } catch (Exception e) { e.printStackTrace(); } finally { if(reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; } @Override protected void onPostExecute(Void aVoid) { progressDialog.dismiss(); userCallback.done(null); super.onPostExecute(aVoid); } } private String getEncodedData(Map<String,String> data) { StringBuilder sb = new StringBuilder(); for(String key : data.keySet()) { String value = null; try { value = URLEncoder.encode(data.get(key),"UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } if(sb.length()>0) sb.append("&"); sb.append(key + "=" + value); } return sb.toString(); } public class fetchUserDataAsyncTask extends AsyncTask<Void, Void, Void > { User user; GetUserCallback userCallback; public fetchUserDataAsyncTask(User user, GetUserCallback userCallback) { this.user = user; this.userCallback = userCallback; } @Override protected Void doInBackground(Void... params) { Map<String,String> dataToSend = new HashMap<>(); dataToSend.put("name", user.name); dataToSend.put("password", user.password); String encodedStr = getEncodedData(dataToSend); BufferedReader reader = null; HttpParams httpRequestsParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpRequestsParams, CONNECTION_TIMEOUT); HttpConnectionParams.setSoTimeout(httpRequestsParams, CONNECTION_TIMEOUT); HttpClient client = new DefaultHttpClient(httpRequestsParams); HttpPost post = new HttpPost(SERVER_ADDRESS + "FetchUserData.php"); User returnedUser =null; try { post.setEntity(new UrlEncodedFormEntity(dataToSend)); HttpResponse httpResponce = client.execute(post); HttpEntity entity = httpResponce.getEntitiy(); String result = EntityUtils.toString(entity); JSONObject jObject = new JSONObject(result); if(jObject.length() == 0){ user = null; }else{ String name = jObject.getString("name"); int age = jObject.getInt("age"); returnedUser = new User(name, age, user.username, user.password); } }catch (Exception e){ e.printStackTrace(); } return returnedUser; } @Override protected void onPostExecute(User returnedUser) { progressDialog.dismiss(); userCallback.done(returnedUser); super.onPostExecute(returnedUser); } } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/04 14:29