java - 如何从 php 页面(没有 json)获取数据?
问题描述
我有这个网站(http://www.usadebtclock.com/us-debt-clock-widget.php),我想使用改造 2 从中获取数字(没有 JSON)到我的 android studio 应用程序并显示这个数字在文本视图中。我应该使用什么转换器工厂而不是 GsonConverterFactory?或者我怎样才能从这个页面获取数字到我的文本视图?
我尝试使用GsonConverterFactory.create()
它,但它没有做出响应并显示来自onFailure
方法的日志
这是MainActivity.class
(使用无用的 GsonConverterFactory):
public class MainActivity extends AppCompatActivity {
TextView tv;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.textview1);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(DolgAPI.HOST)
.addConverterFactory(GsonConverterFactory
.create())
.build();
DolgAPI apiService = retrofit.create(DolgAPI.class);
Call<String> call = apiService.getDolg();
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
tv.setText(response.body());
Log.d("MyLog", "Got it!");
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.d("MyLog", "Error");
}
});
}
});
}
}
这是 Retrofit2 响应 API:
public interface DolgAPI {
String HOST = "http://www.usadebtclock.com";
@GET("us-debt-clock-widget.php")
Call<String> getDolg();
}
解决方案
我使用 WebView 显示该站点的价值
它包含 JavaScript,所以我使用下一行来允许在应用程序中执行 Web 脚本:
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
推荐阅读
- matlab - 使用 fmincon 函数的最优控制问题
- python - 如何从 Python3 的列表中调用我自己的方法?
- c# - ODBC调用存储过程
- javascript - 如何让 webpack-dev-server 获取最新的更改
- swift - 标签栏自定义按钮图像不显示
- android - 如何使用 kotlin 将 ISO 3166-1 值转换为国家名称
- google-apps-script - 使用 Google Script 和 Notion API 创建页面时未定义父级
- reactjs - 使用 GitHub Action [CI/CD] 部署 AWS S3 时如何设置自定义环境变量以响应应用程序
- r - 使用 ets() 时,为什么 R 没有响应并崩溃?
- r - R 中的引导程序:t.star[r, ] <- res[[r]] 中的错误:要替换的项目数不是替换长度的倍数