[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 и загрузить изображение.
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();
}
}
}