Ответ {protocol = http / 1.1, code = 404, message = Not Found, url = https://sub.domain.com} in Retrofit 2 - PullRequest
0 голосов
/ 08 января 2019

В IIS 7 мы успешно используем токен с помощью нашего приложения, но при обновлении сервера приложений с IIS 7 до IIS 8 возникает следующая ошибка с сервера приложений ....

Ответ {протокол = http / 1.1, код = 404, сообщение = не найдено, URL = https://sub.domain.com}

Наш класс дооснащения 2 Singleton в следующем

public class RetrofitSingleton {

public static final String BASE_URL = "https://sub.domain.com";

private static Retrofit retrofit = null;
private static Context sContext;
private static Retrofit sRetrofit;

public RetrofitSingleton() {
}

public synchronized static Retrofit getInstance(Context context) {
    sContext=context;
    if(sRetrofit==null){
        createRetrofit();
    }
    return sRetrofit;
}

private static void createRetrofit(){

    TrustManagerFactory trustManagerFactory = null;
    try {
        trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    try {
        trustManagerFactory.init((KeyStore) null);
    } catch (KeyStoreException e) {
        e.printStackTrace();
    }
    TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
    if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
        throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));
    }
    X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
    SSLContext sslContext = null;
    try {
        sslContext = SSLContext.getInstance("SSL");
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    try {
        sslContext.init(null, new TrustManager[] { trustManager }, null);
    } catch (KeyManagementException e) {
        e.printStackTrace();
    }
    SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

    OkHttpClient okHttpClient= null;
    okHttpClient = new OkHttpClient.Builder()
            .sslSocketFactory(new TLSSocketFactory(),trustManager)
            .connectTimeout(2, TimeUnit.MINUTES)
            .readTimeout(2, TimeUnit.MINUTES)
            .writeTimeout(2, TimeUnit.MINUTES)
            //.sslSocketFactory(sslSocketFactory, trustManager)
            .followRedirects(false)
            .followSslRedirects(false)
            .retryOnConnectionFailure(false)
            .cache(null)//new Cache(sContext.getCacheDir(),10*1024*1024)
            .build();

    sRetrofit= new Retrofit.Builder()
            .client(okHttpClient)
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
}

Следуя нашему обновленному интерфейсу 2 API

@FormUrlEncoded
@POST("/Api/Token")
Call<TokenInfo> getTokenAccess(@Field("grant_type") String grantType);

Мы не можем понять, что требуется изменить make-код конфигурации / кода в связи с обновлением IIS 7 до IIS 8. Любое предложение очень ценится.

Заранее спасибо.

Примечание:

 1. Using Postman we get token from our Asp.net Web api but from our android 
   app we cannot get token using retrofit 2.

 2. In IIS 7, our application & app works successfully.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Хочешь знать,

Мы не можем понять, что требуется изменить сделать в любом месте Конфигурация / Код из-за обновления IIS 7 до IIS 8

Ответ Нет . Вам не нужно менять код из-за обновления IIS. Проблема в другом.

Возможно, проблема связана с вашей сетью. Проверьте трек своего субдомена с реальным IP правильно. Просмотрите и проверьте конфигурацию SSL и проблему брандмауэра. Это может послужить вашей проблеме.

0 голосов
/ 16 января 2019

Ваш класс RetrofitSingleton выглядит отлично. Возможно, это не ваша проблема IIS. IIS 8 обеспечивает большую гибкость, чем IIS 7 для SSL. В моем случае я столкнулся с проблемой неполной конфигурации SSL с IIS 8. Попробуйте с правильной конфигурацией SSL с IIS. Перейдите по данной ссылке: https://www.sslsupportdesk.com/ssl-installation-instructions-for-windows-iis-8-and-8-5/

...