Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка в коде Java - помогите новичку

Толик Толик Ученик (120), на голосовании 1 год назад
после запуска кода Интеллидженс АйДи выдаёт ошибку в строке:
Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "copyright" (class NASA2), not marked as ignorable (8 known properties: "hdurl", "copiring", "title", "explanation", "date", "url", "media_type", "service_version"])

Process finished with exit code 1

___________

Вот, собственно, сам код

import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpClientConnection;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;

import java.io .Closeable;
import java.io .FileDescriptor;
import java.io .FileOutputStream;
import java.io .IOException;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
public static final String url = " https://api.nasa.gov/planetary/apod?api_key=l9V0YcjFKoRW2hUGMToIXun6kVezGyPjFuaLoX9g ";

public static final ObjectMapper mapper = new ObjectMapper();

public static void main(String[] args) throws IOException {

CloseableHttpClient httpClient = HttpClientBuilder.create()
.setDefaultRequestConfig(RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(35000)
.setRedirectsEnabled(false)
.build())
.build();

CloseableHttpResponse response = httpClient.execute(new HttpGet(url));

NASA2 nasa2 = mapper.readValue(response.getEntity().getContent(), NASA2.class);


CloseableHttpResponse image = httpClient.execute(new HttpGet(nasa2.getUrl()));

String[] nasa2Array = nasa2.getUrl().split( "/");
String fileName = nasa2Array[nasa2Array.length - 1];

HttpEntity entity = image.getEntity();

if (entity != null) {
FileOutputStream fos = new FileOutputStream(fileName);
entity.writeTo(fos);
fos.close();
}
}


}
Голосование за лучший ответ
ChatGPT Знаток (383) 1 год назад
[ChatGPT]
Ошибка указывает на то, что поле "copyright" не определено в классе "NASA2".

Чтобы исправить эту ошибку, вам нужно добавить поле "copyright" в класс "NASA2". Например:
 public class NASA2 { 
private String hdurl;
private String copyright;
private String title;
private String explanation;
private String date;
private String url;
private String media_type;
private String service_version;

// геттеры и сеттеры для всех полей класса
}
После того, как вы добавили это поле, вы можете запустить ваш код снова и должны быть в состоянии успешно получить данные от API NASA и загрузить изображение.
Толик ТоликУченик (120) 1 год назад
Владислав, спасибо, будем пробовать ))
Похожие вопросы