2017-09-08 8 views
0

良い状態コードとjsonデータの結果を持つサーバーから最初の正常な応答を取得しています。4つの連続した要求がトリガされ、応答(ステータスコード400)にメッセージがありません。不正リクエスト。 この奇妙な動作は、リフレッシュレイアウトを押して、サーバーからデータのリストを取得しようとしているときに起こります。 要求: これは私のコードです最初の成功した応答を取得した後、サーバーからの応答の奇妙なシリーズ

public static void loadMyOrders(Context context, final OrdersCallBack listener) { 
     KService kTestService = ApiUtils.getOrdersApiService(context); 
    // TODO to be changed to getMyOrders <Done> 
    KService.getAllTheOrders().enqueue(new Callback<List<OrderServer>>() { 
     @Override 
     public void onResponse(Call<List<OrderServer>> call, 
           Response<List<OrderServer>> response) { 
      if (response.code() == 400) { 
       try { 
        Log.d("Error code 400",response.errorBody().string()); 
       } catch (IOException e) { 
        e.printStackTrace(); 
        Log.d("IO exception"," " + e.getMessage()); 

       } 
      } 
      if (response.isSuccessful()) { 
       Log.d("listenerServerManager", response.code() + " "); 
       Log.d("slist0::" , " "+ response.body().toString()); 
       List<OrderServer> ordersList = response.body(); 
       for (OrderServer orderFromServer : ordersList) { 
        orderFromServer.compoundPrimaryKey(); 
       } 
       Log.d("slist1::" , " "+ ordersList.toString()); 
       listener.onSuccesful(ordersList); 
      } else { 
       Log.d("listenerServerManager", response.code() + " "); 
      listener.onError(response.code() + " "); 
      } 

     } 

     @Override 
     public void onFailure(Call<List<OrderServer>> call, Throwable t) { 
      Log.d("listenerServerManager", t.getMessage()+ " "); 
      listener.onError(t.getMessage() + " "); 

     } 
    }); 
} 

改造クライアント:

public static Retrofit getClient(String baseUrl, Context context) { 
     sharedpreferences = context.getSharedPreferences(GlobalsManager.USERPREFERENCES, context.MODE_PRIVATE); 
       final String token = sharedpreferences.getString(GlobalsManager.TOKENKEY, " "); 
       Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() { 
        @Override public boolean shouldSkipField(FieldAttributes f) { 
         return f.getDeclaringClass().equals(RealmObject.class); 
        } 
        @Override public boolean shouldSkipClass(Class<?> clazz) { 
         return false; 
        } 
       }).create(); 
       HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); 
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
       if (httpClient == null) { 
        httpClient = new OkHttpClient.Builder().addNetworkInterceptor(new StethoInterceptor()); 
       } 
        httpClient.addInterceptor(new Interceptor() { 
         @Override public okhttp3.Response intercept(Chain chain) throws IOException { 
          Request request = chain.request() 
           .newBuilder() 
           .addHeader("Authorization", "Bearer " + token) 
           .addHeader("Cache-Control", "no-cache") 
           .addHeader("Content-Type", "application/json") 
           .build(); 
           return chain.proceed(request); 
         } 
        }); 
       httpClient.addInterceptor(loggingInterceptor); 
        //httpClient.retryOnConnectionFailure(true); 
        return new Retrofit.Builder().baseUrl(baseUrl) 
         .addConverterFactory(GsonConverterFactory.create(gson)) 
         .client(httpClient.build()) 
         .build(); 
       } 

これが出力されます:最初の応答が成功したが、その後、私は4 succesvies応答を得ますコードレスポンスとして400を返します。

 09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: <-- 200 OK http://api.serverapitest.kproj.net/api/TransportOrders/all (533ms) 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Server: nginx/1.10.3 (Ubuntu) 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Date: Fri, 08 Sep 2017 15:39:39 GMT 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Content-Type: application/json; charset=Windows-1252 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Content-Length: 32443 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Connection: keep-alive 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Cache-Control: no-cache 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Pragma: no-cache 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: Expires: -1 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: X-AspNet-Version: 4.0.30319 
    09-08 16:39:38.121 11246-13196/com.kProject.app6 D/OkHttp: X-Powered-By: ASP.NET 
    09-08 16:39:38.341 11246-13196/com.kProject.app6 D/OkHttp: [{THE GOOD LIST : THE EXPETED *******DATA *****************]} 
09-08 16:39:38.351 11246-13196/com.kProject.app6 D/OkHttp: <-- END HTTP (32443-byte body) 
    <<<<<<After the refresh layout is pressed>>>>>> 
    09-08 16:40:45.151 11246-11246/com.kProject.app6 D/token-retrofitclient: FKJHGFHFGDKJHFDGFEZUOFbNR2Rt-AJu6mT_1Ci7QQAWYGiKH84M6lyAS*****DnpWWFdbo4nOGWfxTKVbA-RO2TzZjbZ5Sqn7_Da-UBm8mcc9x1JKQ6q8KWshd6 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: --> GET http://api.serverapitest.kproj.net/api/TransportOrders/all http/1.1 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Authorization: Bearer Liv27WIlooXjkjdQ7bNR2Rt-AJu6mT_1Ci7QQAWYGiKH84M6lyASB0RXMiq2WRAB8zx85N7IFSu1CyphJcXGMjArS876Tj_EjYoDkec4Uu6UubiOKid2wG6ta80t0y6ejlp0FECHmqm6llav7uj_W-Au11JLXCmlICOMXT8j8dzCnVBJtr7Uc5oUA6bLMAONOqyU_nKEwz2ZUtRAIIiImY_qzNvc49NSqm7RTqSvBzJha8ElIz515PRWhFfbOaGx-U7jn1-JE7vTSJXfPGCOCGU53ecvO13AFlX2ckG3bUDMUzkqcn534PprTYMgYggGGQf48qdu1SJMgkuyoHJ_81YfDmG8Kr_smrhc7tyoR3wdUQCX_zsVBMJ-zlAPDkNfk15DG4c0qWzmuW9pZZMR5AaAveKU6KUCyUrikFlDGGvwsMLL9P9iYRlZqHFw_3lDu7DnpWWFdbo4nOGWfxTKVbA-RO2TzZjbZ5Sqn7_Da-UBm8mcc9x1JKQ6q8KWshd6 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Cache-Control: no-cache 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: --> END GET 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: --> GET http://api.serverapitest.kproj.net/api/TransportOrders/all http/1.1 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Authorization: Bearer Liv27WIlooXjkjdQ7bNR2Rt-AJu6mT_1Ci7QQAWYGiKH84M6lyASB0RXMiq2WRAB8zx85N7IFSu1CyphJcXGMjArS876Tj_EjYoDkec4Uu6UubiOKid2wG6ta80t0y6ejlp0FECHmqm6llav7uj_W-Au11JLXCmlICOMXT8j8dzCnVBJtr7Uc5oUA6bLMAONOqyU_nKEwz2ZUtRAIIiImY_qzNvc49NSqm7RTqSvBzJha8ElIz515PRWhFfbOaGx-U7jn1-JE7vTSJXfPGCOCGU53ecvO13AFlX2ckG3bUDMUzkqcn534PprTYMgYggGGQf48qdu1SJMgkuyoHJ_81YfDmG8Kr_smrhc7tyoR3wdUQCX_zsVBMJ-zlAPDkNfk15DG4c0qWzmuW9pZZMR5AaAveKU6KUCyUrikFlDGGvwsMLL9P9iYRlZqHFw_3lDu7DnpWWFdbo4nOGWfxTKVbA-RO2TzZjbZ5Sqn7_Da-UBm8mcc9x1JKQ6q8KWshd6 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Cache-Control: no-cache 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Authorization: Bearer Liv27WIlooXjkjdQ7bNR2Rt-AJu6mT_1Ci7QQAWYGiKH84M6lyASB0RXMiq2WRAB8zx85N7IFSu1CyphJcXGMjArS876Tj_EjYoDkec4Uu6UubiOKid2wG6ta80t0y6ejlp0FECHmqm6llav7uj_W-Au11JLXCmlICOMXT8j8dzCnVBJtr7Uc5oUA6bLMAONOqyU_nKEwz2ZUtRAIIiImY_qzNvc49NSqm7RTqSvBzJha8ElIz515PRWhFfbOaGx-U7jn1-JE7vTSJXfPGCOCGU53ecvO13AFlX2ckG3bUDMUzkqcn534PprTYMgYggGGQf48qdu1SJMgkuyoHJ_81YfDmG8Kr_smrhc7tyoR3wdUQCX_zsVBMJ-zlAPDkNfk15DG4c0qWzmuW9pZZMR5AaAveKU6KUCyUrikFlDGGvwsMLL9P9iYRlZqHFw_3lDu7DnpWWFdbo4nOGWfxTKVbA-RO2TzZjbZ5Sqn7_Da-UBm8mcc9x1JKQ6q8KWshd6 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: Cache-Control: no-cache 
    09-08 16:40:45.161 11246-14427/com.kProject.app6 D/OkHttp: --> END GET 
    09-08 16:40:45.181 11246-11246/com.kProject.app6 D/ViewRootImpl: #1 mView = android.widget.LinearLayout{76d391e V.E...... ......I. 0,0-0,0} 
    09-08 16:40:45.201 11246-11373/com.kProject.app6 D/mali_winsys: new_window_surface returns 0x3000, [399x132]-format:1 
    09-08 16:40:45.261 11246-11373/com.kProject.app6 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <-- 400 Bad Request http://api.serverapitest.kproj.net/api/TransportOrders/all (222ms) 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Server: nginx/1.10.3 (Ubuntu) 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Date: Fri, 08 Sep 2017 15:40:46 GMT 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Content-Type: text/html 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Content-Length: 182 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Connection: close 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <html> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <head><title>400 Bad Request</title></head> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <body bgcolor="white"> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <center><h1>400 Bad Request</h1></center> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <hr><center>nginx/1.10.3 (Ubuntu)</center> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: </body> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: </html> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <-- END HTTP (182-byte body) 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <-- 400 Bad Request http://api.serverapitest.kproj.net/api/TransportOrders/all (224ms) 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Server: nginx/1.10.3 (Ubuntu) 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Date: Fri, 08 Sep 2017 15:40:46 GMT 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Content-Type: text/html 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Content-Length: 182 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: Connection: close 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <html> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <head><title>400 Bad Request</title></head> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <body bgcolor="white"> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <center><h1>400 Bad Request</h1></center> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <hr><center>nginx/1.10.3 (Ubuntu)</center> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: </body> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: </html> 
    09-08 16:40:45.391 11246-14427/com.kProject.app6 D/OkHttp: <-- END HTTP (182-byte body) 
    09-08 16:40:45.401 11246-11246/com.kProject.app6 D/Error code 400: <html>                  <head><title>400 Bad Request</title></head>                  <body bgcolor="white">                  <center><h1>400 Bad Request</h1></center>                  <hr><center>nginx/1.10.3 (Ubuntu)</center>                  </body>                  </html> 
+1

uが –

+0

があなたの本当のリクエストをお申し出ください。.. uはして要求を行うデータが良くない場合を除き、これはバックエンドで何かのに関してでいるようだ。これの悪い要求がなぜ起こるか確認する必要があります。 –

+0

これは速く連続して起こります、あなたのサーバーはレート制限を行使していますか? –

答えて

0

私の場合、サーバーはこれらの要求を処理できませんでした。あなたのHTTPクライアントがそれから静的を取り除くならばあなたのHTTPクライアントが静的であるかどうか見てください。さもなければ、既存の要求も新しいものと一緒になり、サーバはこれらの要求を同時に処理できなくなります。以下は必要な場合のための私のセットアップです。

public WebServiceInterface getNetworkService(@Nullable final String token, @NonNull final String url) throws IOException { 
     this.token = token; 
     this.url = url; 
     return getRetrofit(url).create(WebServiceInterface.class); 
    } 

    private Retrofit getRetrofit(String url) { 
     OkHttpClient.Builder client = 
       new OkHttpClient.Builder(). 
         addInterceptor(interceptor). 
         connectTimeout(90, TimeUnit.SECONDS). 
         writeTimeout(90, TimeUnit.SECONDS). 
         readTimeout(90, TimeUnit.SECONDS); 

     if (!Constant.RELEASE) { 
      client.addInterceptor(getLogger()); 
     } 

     retrofit.baseUrl(url) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 
       .client(client.build()); 
     return retrofit.build(); 
    } 
+0

ありがとうございますが動作していません –

関連する問題