我有一个WebApi
应用程序,并将数据序列化到PC的localhost
。
我想在我的Android应用程序上看到这些数据。我用okhttp3
库编写了一个应用程序。但是它没有用,例如当我用真实的URL替换我的URL时:coindesk的api URL正常工作。有趣的是,当我编写本地主机地址时,不会抛出任何错误,它只是关闭手机上的应用程序。这是我的代码:
public class MainActivity extends AppCompatActivity {
private TextView mTextViewResult;
private Button ExecuteButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextViewResult = findViewById(R.id.text_wiev_result);
ExecuteButton = findViewById(R.id.btnCallMethod);
OkHttpClient client = new OkHttpClient();
String url = "https://api.coindesk.com/v1/bpi/currentprice.json";
//String url = "localhost:59085/api/Students";
ExecuteButton.setOnClickListener(v -> {
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if(response.isSuccessful())
{
final String myResponse = response.body().string();
MainActivity.this.runOnUiThread(() -> mTextViewResult.setText(myResponse));
}
}
});
});
以下是我的Json数据:
答案 0 :(得分:0)
最后,我自己解决了我的问题。老实说,有必要通过很多步骤来解决这个问题。我会一步一步讲。
步骤1:打开Windows Defender->防火墙和网络保护->通用网络->为此进行保护。
步骤:2 :安装Jexus Manager,将其打开并转到PC名称下的“站点”选项卡,然后右键单击并添加网站。输入网站名称,然后在“物理路径”下选择您的Web应用程序路径。给一个端口例如61508.对于主机名,请使用127.0.0.1,对于IP地址,请使用您的IPv4地址,然后单击“确定”按钮。
步骤3:在左侧单击您的站点名称,然后在打开的区域上单击鼠标右键,然后转到->管理网站->开始。然后单击管理网站->浏览并检查您的网站是否运行正常。
步骤4:现在打开android并将您当前的网址设置为:http://10.0.2.2:61508/api/Students
,然后应用程序将正常运行。