我有这个网站(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();
}
答案 0 :(得分:0)
我使用WebView从该网站上分发了价值
它包含JavaScript,因此我使用了以下几行以允许在应用程序中执行Web脚本:
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
答案 1 :(得分:-1)
首先,该网站由于无法加载而无法正常运行。 但是,如果假设它正在运行并且您没有任何GET /端点,则您将收到完整的HTML文档,并且需要通过html标记对其进行解析以获取所需的文本。
答案 2 :(得分:-1)
您应该使用ResponseBody
getDolg() should return Call<ResponseBody>
然后,您必须解析html。 贷款以这种格式退回
<span id="debt-clock">$21,954,170,905,365.84</span>
您可以使用正则表达式解析html。