私はAndroidアプリケーションにJsonファイルを取得しようとしています。私は、これは私のコードの一部であるTomcatを使用しています:ここでokhttpClientを使用してURLに接続してJsonを取得しようとしています
final String servidor = "10.0.2.2:8080/ProjetoTCC";
public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
private final String mEmail;
private final String mPasswordU;
UserLoginTask(String email, String password) {
mEmail = email;
mPasswordU = password;
}
@Override
protected Boolean doInBackground(Void... params) {
requester = new MoradorRequester();
if(requester.isConnected(LoginActivity.this)) {
intent = new Intent(LoginActivity.this, UserAreaActivity.class);
try {
morador = requester.get("http://" + servidor + "/ValidacaoLoginAndroid.json", mEmail, mPasswordU);
intent.putExtra("MORADOR", morador);
if(morador.getValidacao() == true){
startActivity(intent);}
} catch (IOException e) {
e.printStackTrace();
}
}else{
Toast toast = Toast.makeText(LoginActivity.this, "Rede indisponível!", Toast.LENGTH_LONG);
toast.show();
}
return false;
}
私はメソッドMoradorRequester呼び出し()接続して、JSONオブジェクトを取得しようとしています。ここMoredorリクエスタは()です:
try {
JSONArray root = new JSONArray(jsonStr);
JSONObject item = null;
for (int i = 0; i < root.length(); i++) {
item = (JSONObject) root.get(i);
morador.setNome(item.getString("nome_completo"));
morador.setDataNascimento(item.getString("data_nascimento"));
morador.setnApartamento(item.getInt("n_apartamento"));
morador.setEmail(item.getString("email"));
morador.setValidacao((Boolean) item.get("validacao"));
}
} catch(JSONException e){
e.printStackTrace();
}
finally {
if(morador == null)
morador.setDataNascimento("10/10/2010");
morador.setEmail("email");
morador.setnApartamento(0);
morador.setNome("Sem Nome");
morador.setDataNascimento("10/10/2010");
morador.setValidacao(true);
}
リクエスタはJSONをつかむと、私はいつも、私は最終的に上に作成し、デフォルトのユーザーを受け取ることができません。
Androidを「String jsonStr = response.body()。string();」を実行するとエラーが発生しました。エラーは以下の通りである。また、
Response{protocol=http/1.1, code=404, message=Not Found, url=http://10.0.2.2:8080/ProjetoTCC/ValidacaoLoginAndroid.json}
、私はAndroidのモニターに次のエラーを受け取った:
09-25 19:24:01.080 2414-2977/com.example.arthurf.tcc.app W/System.err: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONArray
09-25 19:24:01.115 2414-2977/com.example.arthurf.tcc.app W/System.err: at org.json.JSON.typeMismatch(JSON.java:111)
09-25 19:24:01.115 2414-2977/com.example.arthurf.tcc.app W/System.err: at org.json.JSONArray.<init>(JSONArray.java:96)
09-25 19:24:01.115 2414-2977/com.example.arthurf.tcc.app W/System.err: at org.json.JSONArray.<init>(JSONArray.java:108)
09-25 19:24:01.115 2414-2977/com.example.arthurf.tcc.app W/System.err: at network.MoradorRequester.get(MoradorRequester.java:52)
09-25 19:24:01.117 2414-2977/com.example.arthurf.tcc.app W/System.err: at com.example.arthurf.tcc.app.Controller.LoginActivity$UserLoginTask.doInBackground(LoginActivity.java:220)
09-25 19:24:01.117 2414-2977/com.example.arthurf.tcc.app W/System.err: at com.example.arthurf.tcc.app.Controller.LoginActivity$UserLoginTask.doInBackground(LoginActivity.java:201)
09-25 19:24:01.117 2414-2977/com.example.arthurf.tcc.app W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:295)
09-25 19:24:01.117 2414-2977/com.example.arthurf.tcc.app W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
09-25 19:24:01.117 2414-2977/com.example.arthurf.tcc.app W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
09-25 19:24:01.117 2414-2977/com.example.arthurf.tcc.app W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
09-25 19:24:01.117 2414-2977/com.example.arthurf.tcc.app W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
09-25 19:24:01.117 2414-2977/com.example.arthurf.tcc.app W/System.err: at java.lang.Thread.run(Thread.java:818)
は、私はすでにJSONをテストし、それは私が、私が必要なものを返し、正常に動作しているようですこれは、Androidとサーバーの間の接続に問題があると考えています。
あなたがしたい場合は、GitHubの上で私のコードを確認することができます。
https://github.com/ArthurFranchetto/TCCTest1.git
は、私が何かを逃したことがありますか?
ありがとうございます。