我从 .net 创建了 rest api。我有简单的登录和注册 android 应用程序。这是我绑定本地ip的代码
public class RetrofitClient {
private static Retrofit instance;
public static Retrofit getInstance() {
if (instance == null)
instance = new Retrofit.Builder()
.baseUrl("http://localhost:5000/")
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
return instance;
}
}
当我运行应用程序并测试我的登录功能时,它返回
<块引用>无法连接到 localhost/127.0.0.1:5000
我该如何解决这个问题
答案 0 :(得分:0)
您需要创建一个 xml 并在该 xml 文件中写入以下代码
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
<domain includeSubdomains="true">your sub domain</domain>
</domain-config>
</network-security-config>
文件的位置应该是
** main/res/xml/network_security_config.xml**
并将此文件添加到应用程序标签的清单中,如下所述:
<application
......
android:networkSecurityConfig="@xml/network_security_config">
由于 localhost 不是安全域,您必须在默认情况下阻止非 TLS 连接的 API 28+ 的网络配置中允许非安全域。
答案 1 :(得分:0)
在我的例子中,在本地主机上运行的服务器意味着 127.0.0.1:5000。我已将其更改为我的本地 IP 地址 192.168.x.x:5000 以运行服务器。然后它起作用了。希望这会有所帮助。