Как исправить ошибку соединения при загрузке API?Сбой при попытке аутентификации - PullRequest
0 голосов
/ 20 сентября 2019

Я делаю проект, который включает в себя различные модули, которые могут входить в разные отделы для прохождения логического теста, обучения и т. Д. И т. Д. Однако API базы данных и теста выбирается из REST API.В настоящее время я сталкиваюсь с проблемой подключения к ошибке API

«Политика безопасности» при каждой попытке аутентификации.

Следовательно, теперь я пытаюсь подключиться к локальному хосту, чтобы проверить, в чем проблемая тоже не могу подключиться.Я начинаю задаваться вопросом, это моя проблема с кодом или проблема с подключением.

Пожалуйста, помогите!

То, что я уже пробовал:

  • Настройка разрешения доступа в Интернет в файле манифеста
  • Создать network_security_config.xml

Это мой API подключения:

interface MyApi
{

@FormUrlEncoded
@POST("admin/42/login")
suspend fun userLogin(
    @Field("adminId") empID: String,
    @Field("password") password: String
) : Response<AuthResponse>

companion object
{
    operator fun invoke() : MyApi
    {
        return Retrofit.Builder()
            .baseUrl("http://localhost:8090/")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
            .create(MyApi::class.java)
    }
}
}

Это моя ошибка в RED:

    E/AndroidRuntime: FATAL EXCEPTION: main
                            Process: com.example.quizbeta, PID: 6407
                            java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8090
                            at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:248)
                            at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:166)
                            at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)
                            at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
                            at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
                            at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
                            at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
                            at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                            at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
                            at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254)
                            at okhttp3.RealCall$AsyncCall.execute(RealCall.java:200)
                            at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
                            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
                            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
                            at java.lang.Thread.run(Thread.java:764)
                            Caused by: java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 8090) from /127.0.0.1 (port 59329) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
                            at libcore.io.IoBridge.isConnected(IoBridge.java:273)
                            at libcore.io.IoBridge.connectErrno(IoBridge.java:188)
                            at libcore.io.IoBridge.connect(IoBridge.java:130)
                            at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:129)
                            at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:356)
                            at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
                            at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
                            at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:357)
                            at java.net.Socket.connect(Socket.java:616)
                            at okhttp3.internal.platform.AndroidPlatform.connectSocket(AndroidPlatform.java:73)
                            at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:246)
                            at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:166) 
                            at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257) 
                            at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135) 
                            at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114) 
                            at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
                            at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
                            at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
                            at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
                            at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254) 
                            at okhttp3.RealCall$AsyncCall.execute(RealCall.java:200) 
                            at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 
                            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
                            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
                            at java.lang.Thread.run(Thread.java:764) 
                            Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
                            at libcore.io.IoBridge.isConnected(IoBridge.java:262)
                            at libcore.io.IoBridge.connectErrno(IoBridge.java:188) 
                            at libcore.io.IoBridge.connect(IoBridge.java:130) 
                            at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:129) 
                            at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:356) 
                            at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
                            at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
                            at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:357) 
                            at java.net.Socket.connect(Socket.java:616) 
                            at okhttp3.internal.platform.AndroidPlatform.connectSocket(AndroidPlatform.java:73) 
                            at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:246) 
                            at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:166) 
                            at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257) 
                            at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135) 
                            at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114) 
                            at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
                            at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
                            at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
                            at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 
                            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 
                            at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254) 
                            at okhttp3.RealCall$AsyncCall.execute(RealCall.java:200) 
                            at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 
                            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
                            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
                            at java.lang.Thread.run(Thread.java:764) 
                            Process 6407 terminated.

1 Ответ

2 голосов
/ 20 сентября 2019

ДЛЯ ВОПРОСА ПОЛИТИКИ БЕЗОПАСНОСТИ

Существует политика, разрешающая только HTTPS-запросы, так как поддержка clearText отключена в Android P.

create network_security_config.xml в папке XML внутри Res.например.

res / xml / network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">Your URL</domain>
    </domain-config>
</network-security-config>

теперь в

manifest.xml

внутри тега приложения добавить флаг

android:networkSecurityConfig="@xml/network_security_config"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...