質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

2回答

4859閲覧

ログイン機能にて、コードの一部が非推奨により使用できません。(android studio)

Kottyan

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/03/04 07:35

現在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); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

非推奨のクラスを使ったからといってエラーになることはありません。エラーの内容を追記してもらえると回答できると思います。
また、セキュリティ面やサポートを考えると非推奨のクラスを使わずにHttpURLConnectionを使うように変更すべきです。

投稿2016/03/04 09:21

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kottyan

2016/03/04 14:29

ご返信誠にありがとうございます。7行目のHttp paramsですと、 「this inspection reports where deprecated code is used in the specified inspection scope」 と出るため、検索してみると「現在は非推奨のため使用できない」とあります。 HttpParams httpRequestsParams = new BasicHttpParams(); 上記のHttpParamsが非推奨のため、その後のコードに影響が出てるのではないかと考えています。 ちなみに参考にしたコードが下記になります。 http://stackoverflow.com/questions/30740359/namevaluepair-httpparams-httpconnection-params-deprecated-on-server-request-cl
guest

0

Android 5.1 APIs#Deprecated HTTP Classes

↑では、「HttpClientじゃなくURLConnection使え」と言ってるので、そのようにしてはどうでしょう?

投稿2016/03/04 08:08

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kottyan

2016/03/04 14:39

ご返信ありがとうございます。 いただいたURLを基に変更いたしましたが、7行目のHttp paramsが取消線によって非推奨とされていたためコード全てのエラーを取り除く事が出来ませんでした。 コメントいただきまして、誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問