Я получаю ошибку «Попытка получить длину нулевого массива».Я пытаюсь получить случайные кавычки, как показано ниже, по ссылке https://gturnquist -quoters.cfapps.io / api / random , когда я пытаюсь нажать кнопку: введите значение «success»
id 7цитата «Однако реальное преимущество Boot заключается в том, что это просто Spring. Это означает, что любой код, независимо от сложности, идет в любом направлении, я знаю, что это безопасная ставка».
MainActivity.java
public class MainActivity extends AppCompatActivity {
Button btnCallRestApi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnCallRestApi = findViewById(R.id.btnCallRestApi);
btnCallRestApi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//call Rest Api
new HttpReqTask().execute();
}
});
}
private class HttpReqTask extends AsyncTask<Void, Void, Value[]> {
@Override
protected Value[] doInBackground(Void... params){
try{
String apiUrl = "https://gturnquist-quoters.cfapps.io/api/random";
RestTemplate rest = new RestTemplate();
rest.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Value[] quotes = rest.getForObject(apiUrl, Value[].class);
return quotes;
}catch (Exception ex){
Log.e("Could not get Quotes",ex.getMessage());
}
return null;
}
protected void onPostExecute(Value[] quotes){
super.onPostExecute(quotes);
for(Value v:quotes){
Log.i("id: ", String.valueOf(v.getId()));
Log.i("quote: ", v.getQuote());
}
}
}
}
Quote.java
public Quote() {
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Value getValue() {
return value;
}
public void setValue(Value value) {
this.value = value;
}
@Override
public String toString() {
return "Quote{" +
"type='" + type + '\'' +
", value=" + value +
'}';
}
Value.java
public Value() {
}
public Long getId() {
return this.id;
}
public String getQuote() {
return this.quote;
}
public void setId(Long id) {
this.id = id;
}
public void setQuote(String quote) {
this.quote = quote;
}
@Override
public String toString() {
return "Value{" +
"id=" + id +
", quote='" + quote + '\'' +
'}';
}