如何从我的 Android 应用程序连接到 WebApi?
How can I connect from my Android application to WebApi?
我有一个 WebApi
应用程序,我将我的数据序列化到 PC localhost
。
我想在我的 Android 应用程序中查看该数据。我用 okhttp3
库编写了一个应用程序。但是它没有用,当我用真实的 url 替换我的 url 例如:coindesk 的 api url 它运行良好。有趣的是,当我写我的本地主机地址时,它没有抛出任何错误,它只是关闭了我的 phone 上的应用程序。这是我的代码:
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 数据:
最后我自己解决了我的问题。老实说,有必要通过很多步骤来解决这个问题。我会一步一步告诉你的。
第一步:打开WindowsDefender -> 防火墙和网络保护 -> 通用网络 -> 为此关闭保护。
步骤:2:安装 Jexus 管理器,打开它并转到您电脑名称下的站点选项卡,然后右键单击并添加网站。提供网站名称并在物理路径下选择您的 Web 应用程序路径。给一个端口,例如61508。主机名使用 127.0.0.1,IP 地址使用您的 IPv4 地址,然后单击“确定”按钮。
第 3 步: 在左侧单击您的站点名称,然后在打开的区域单击右键,然后转到 -> 管理网站 -> 开始。然后点击管理网站 - >浏览并检查您的网站是否运行良好。
第 4 步:现在打开 android 并将当前 URL 设置为:http://10.0.2.2:61508/api/Students
然后应用程序将运行良好。
我有一个 WebApi
应用程序,我将我的数据序列化到 PC localhost
。
我想在我的 Android 应用程序中查看该数据。我用 okhttp3
库编写了一个应用程序。但是它没有用,当我用真实的 url 替换我的 url 例如:coindesk 的 api url 它运行良好。有趣的是,当我写我的本地主机地址时,它没有抛出任何错误,它只是关闭了我的 phone 上的应用程序。这是我的代码:
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 数据:
最后我自己解决了我的问题。老实说,有必要通过很多步骤来解决这个问题。我会一步一步告诉你的。
第一步:打开WindowsDefender -> 防火墙和网络保护 -> 通用网络 -> 为此关闭保护。
步骤:2:安装 Jexus 管理器,打开它并转到您电脑名称下的站点选项卡,然后右键单击并添加网站。提供网站名称并在物理路径下选择您的 Web 应用程序路径。给一个端口,例如61508。主机名使用 127.0.0.1,IP 地址使用您的 IPv4 地址,然后单击“确定”按钮。
第 3 步: 在左侧单击您的站点名称,然后在打开的区域单击右键,然后转到 -> 管理网站 -> 开始。然后点击管理网站 - >浏览并检查您的网站是否运行良好。
第 4 步:现在打开 android 并将当前 URL 设置为:http://10.0.2.2:61508/api/Students
然后应用程序将运行良好。