2016-12-15 248 views
1

我正在爲網絡調用創建一個帶retrofit2的應用程序。我需要在單個活動中調用多個API。現在我面臨着403-禁止的錯誤。如果我只打一個API,它工作正常。但是如果我一個一個地使用多個API調用,那麼我正面臨着這個錯誤。Android - Retrofit2 - 403-Forbidden

我的CreateService方法如下:

public static <S> S createService(Class<S> serviceClass, final String authToken) { 
     if (authToken != null) { 
      httpClient.addInterceptor(new Interceptor() { 
       @Override 
       public Response intercept(Interceptor.Chain chain) throws IOException { 
        Request original = chain.request(); 

        // Request customization: add request headers 
        Request.Builder requestBuilder = original.newBuilder() 
          .header("Authorization-Token", authToken) 
          .method(original.method(), original.body()); 

        Request request = requestBuilder.build(); 
        return chain.proceed(request); 
       } 
      }); 
     } 

//  OkHttpClient client = httpClient.readTimeout(60, TimeUnit.SECONDS).connectTimeout(60, TimeUnit.SECONDS).build(); 
     Dispatcher dispatcher = new Dispatcher(Executors.newFixedThreadPool(200)); 
     dispatcher.setMaxRequests(200); 
     dispatcher.setMaxRequestsPerHost(1); 

     OkHttpClient okHttpClient = httpClient.dispatcher(dispatcher).connectionPool(new ConnectionPool(100, 30, TimeUnit.SECONDS)).build(); 

     Retrofit retrofit = builder.client(okHttpClient).build(); 
     return retrofit.create(serviceClass); 
    } 

有什麼錯我的代碼..我如何處理呢?

+0

是那裏等待第一個API調用拉開了第二屆一個之前完成任何依賴性? –

+0

沒有所有的API都有不同的數據。沒有關係 – Amsheer

回答

2

你確定字符串不是空字符串嗎?

請問您可以添加日誌攔截器並設置日誌級別並提供日誌?

compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' 

而且某事像這樣:

OkHttpClient.Builder okBuilder = new OkHttpClient.Builder(); 
    okBuilder.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BASIC).setLevel 
      (HttpLoggingInterceptor.Level.BODY).setLevel(HttpLoggingInterceptor.Level.HEADERS)) 
+0

如何設置授權令牌? – Amsheer

+0

與此無關。使用你的代碼將提供一個日誌,我們可以看到問題在哪裏。 –

+0

好的。我的日誌< - 403 Forbidden http://x.y.z/api/Technicians(976ms) Cache-Control:no-cache Pragma:no-cache Content-Length:17 Content-Type:text/plain; charset = utf-8 過期時間:-1 服務器:Microsoft-IIS/8.5 X-AspNet-Version:4.0.30319 X Powered by:ASP.NET Date:Thu,15 Dec 2016 12:27: 27 GMT < - END HTTP < - 403 Forbidden http:// xyz/api /技術人員 – Amsheer