2016-05-20 8 views
0

私はWebサービスでリクエストしています。サーバからの応答がありません

サーバーからの応答がない場合(サーバーが停止している可能性があるため)、どのようにテストするつもりですか?

エミュレータでどのようにテストできますか?リクエストを送信して応答をブロックして、アプリがこのケースをどのように処理しているかを確認する方法はありますか?そのような場合にも私は何をすべきですか?

+2

エミュレータを使用している場合は、ホストコンピュータのネットワーク接続を切断するだけで、Wi-Fiを無効にしてネットワークケーブルを取り外します。そのような場合には何をすべきですか? - これは、アプリケーションの要件に基づいて決定する必要があります。たぶんユーザーにエラーメッセージを表示して、後でもう一度やり直してみてください。恐らくローカルの何かにデフォルトするかもしれません。 –

+0

あなたはエミュレータでGoogleネットワーク接続をすることができます。また、タイムアウトが必要です。 – Raghunandan

+0

エミュレータでネットワーク接続を切り替えることによって、私が要求した場合に例外が発生します。私はKalturaサービスを使用しています。エラーは 'E/com.kaltura.client.KalturaClientBase:致命的な転送エラーです。私は応答が得られない場合をテストしたい。タイムアウトエラーですか? – Mes

答えて

1

次のコードを考えてみましょう:あなたは、サーバーがダウンしているとき、それはおそらくあなたは、サーバーがあるときにやりたいものは何でも行うことができますCatchブロックに行くタイムアウト&を設定する必要が

 try { 
      DefaultHttpClient httpclient = getClient(); 

      HttpGet request = new HttpGet(); 
      SchemeRegistry schemeRegistry = httpclient 
        .getConnectionManager().getSchemeRegistry(); 
      schemeRegistry.register(new Scheme("https", 
        new TlsSniSocketFactory(), 443)); 
      URI website = new URI(getString(R.string.u3)); 

      request.setURI(website); 
      HttpResponse response = httpclient.execute(request); 
      in = new BufferedReader(new InputStreamReader(response 
        .getEntity().getContent())); 


      result = in.readLine(); 
      // Log.d(TAG, "Version Check result = " + result); 



     } catch (Exception e) { 
      e.printStackTrace(); 
      // Log.e(TAG, "Error in http connection " + e.toString()); 
     } 

をサーバからの応答がありません

0
   StringRequest stringRequest=new StringRequest(Request.Method.POST,reg_url, 
       new Response.Listener<String>() { 

        @Override 
        public void onResponse(String response) { 

         try { 
          JSONArray jsonArray=new JSONArray(response); 
          JSONObject jsonObject=jsonArray.getJSONObject(0); 

          String message=jsonObject.getString("message"); //message is to be send by server 
          builder.setTitle("Server Response"); 
          Toast.makeText(this,message,Toast.LENGTH_LONG).show(); 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 


        } 
       }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 

        } 
       }); 
関連する問題