2017-07-06 10 views
0

このテキストが表示されるかどう私がチェックするにはどうすればよいJSONObjectない応答

{"cod":"404","message":"city not found"}

URL:http://api.openweathermap.org/data/2.5/weather?q=fddfgdfgdfgdfg&units=metric&appid=efb8013262db1b77b0431909b8b173e1

マイ試し

public void btn_search(View view) { 
     CheckInternet checkInternet = new CheckInternet(MainActivity.this); 
     boolean ci = checkInternet.isconnecting(); 
     if(ci) 
     { 
      EditText ed_Search = (EditText)findViewById(R.id.ed_Search); 
      if(ed_Search.getText().length() > 0) 
      { 
       String urlOpenWeatherMap = "http://api.openweathermap.org/data/2.5/weather?q=fddfgdfgdfgdfg&units=metric&appid=efb8013262db1b77b0431909b8b173e1"; 
       progressBar = (ProgressBar)findViewById(R.id.progressBar); 
       btn_search = (ImageView)findViewById(R.id.btn_search); 
       btn_search.setVisibility(View.INVISIBLE); 
       progressBar.setVisibility(View.VISIBLE); 
       RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this); 
       JsonObjectRequest jsonobjectrequest = new JsonObjectRequest(Request.Method.GET, urlOpenWeatherMap, null, 
         new Response.Listener<JSONObject>() { 
          @Override 
          public void onResponse(JSONObject response) { 
           try { 
            String x = response.getString("message"); 
            if(x.contains("404") || x.contains("city not found")) 
            { 
             Toast.makeText(MainActivity.this, "error", Toast.LENGTH_SHORT).show(); 
            } 
            else 
            { 
             Toast.makeText(MainActivity.this, "welcome", Toast.LENGTH_SHORT).show(); 
            } 
           } catch (JSONException e) { 
            e.printStackTrace(); 
           } 
          } 
         }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 

        } 
       }); 
       requestQueue.add(jsonobjectrequest); 

      } 
      else 
      { 
      Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT).show(); 
      } 
     } 
     else 
     { 
      Toast.makeText(MainActivity.this, "no Internet", Toast.LENGTH_SHORT).show(); 
     } 
    } 

私が問題に4時間を解決しようとしています前は無用です。

ため、ロジックが必要であり、私はここでの問題は

String x = response.getString("message"); 

は私が

+0

onErrorResponseエラーをデバッグすることができますする必要があり、あなたはどのようなエラーまたは出力を手に入れました?また –

+0

はエラーは出ませんがデータを取得しませんが、既存の都市名を入力するとデータが取り出されますなぜ私はただチェックしたいのか分かりません都市の名前は存在するかどうか –

答えて

0

あなたはレスポンスボディでJSONテキストを取得しているしてください助けが必要だと思いますが、サーバーは、404のコードエラーで応答しています

+0

彼は働いてくれてありがとうあなた:) –

+0

はい、私は引用符を忘れて...またはそれらを削除することができますまた、 "String.valueOf ..."の文字列変換とintにstatusCodeタイプを変更します。 – JuanGG

0

JSONは

のように見える場合がございます

@Override 
public void onErrorResponse(VolleyError error) { 
    String body; 
    String statusCode = String.valueOf(error.networkResponse.statusCode); 
    if(statusCode == "400") { 
     // do your thing 
    } 
    // do something else 

}:オーバーライドされたメソッド内であること

{"loginNodes":[{"message":"Welcome To Alamofire","name":Enamul Haque,"errorCode":"0","photo":null}]} 

あなたのコードは... GET OR Post.Youから

StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://api.openweathermap.org/data/2.5/weather", 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        //pDialog.dismiss(); 


        try { 
         JSONObject jsonObject = new JSONObject(response); 
         JSONArray loginNodes = jsonObject.getJSONArray("loginNodes"); 
         pDialog.dismiss(); 
         for (int i = 0; i < loginNodes.length(); i++) { 
          JSONObject jo = loginNodes.getJSONObject(i); 
         String message= jo.getString("message"); 
         } 

        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        pDialog.dismiss(); 
        try { 

        } catch (Exception e) { 


        } 
       } 
      }) { 
     @Override 
     protected Map<String, String> getParams() { 
      Map<String, String> params = new HashMap<>(); 
      params.put("q", "fddfgdfgdfgdfg"); 
      params.put("units", "metric"); 
      params.put("appid", "efb8013262db1b77b0431909b8b173e1"); 

      return params; 
     } 
    }; 

    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    requestQueue.add(stringRequest); 

確認応答が

try { 

         if (error instanceof TimeoutError) { 

         }else if(error instanceof NoConnectionError){ 

         } else if (error instanceof AuthFailureError) { 

         } else if (error instanceof ServerError) { 
          //TODO 
         } else if (error instanceof NetworkError) { 
          //TODO 
         } else if (error instanceof ParseError) { 
          //TODO 
         } 

        } catch (Exception e) { 
        }