So erstellen Sie eine API hier
Das ganze Bild des Kunden, den ich gemacht habe, sieht so aus
ImageIOController.java
@RequestMapping(value = "/imageCompleteApi", method = RequestMethod.POST)
public ModelAndView imageUploadCompleteApi(ImageUploadFormApi imageUploadFormApi,
Principal principal) {
//Anmeldeinformationen abrufen
Authentication auth = (Authentication)principal;
LoginUserDetails LoginUser = (LoginUserDetails)auth.getPrincipal();
//Holen Sie sich binäre Daten
Integer FileSize = (int) (imageUploadFormApi.getImage().getSize());
byte[] imageBinary = new byte[FileSize];
try {
imageBinary = imageUploadFormApi.getImage().getBytes();
} catch (IOException e) {
//TODO automatisch generierter Fangblock
e.printStackTrace();
}
//Vorbereitung vorbereiten
PictureMaster pictureMaster = new PictureMaster();
pictureMaster.setOriginalName(imageUploadFormApi.getImage().getOriginalFilename());
pictureMaster.setPictureName(imageUploadFormApi.getFilename());
pictureMaster.setExtension(imageUploadFormApi.getImage().getOriginalFilename()
.substring(imageUploadFormApi.getImage().getOriginalFilename().length() - 4, imageUploadFormApi.getImage().getOriginalFilename().length()));
pictureMaster.setBase64string(Base64.getEncoder().encodeToString(imageBinary));
pictureMaster.setUploadUserId(LoginUser.getUserId());
//Rufen Sie die API auf, um das Bild zu registrieren
ObjectMapper mapper = new ObjectMapper();
Entity<String> requestBody = null;
String result = null;
//Stellen Sie den Header ein.
MultivaluedMap<String, Object> headers = new MultivaluedHashMap<>();
headers.putSingle("X-SUBDOMEIN", "api");
try {
requestBody = Entity.json(mapper.writeValueAsString(pictureMaster));
//Senden Sie eine Post-Anfrage an die API an Ihren Server.
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://api.localhost:8080")
.path("/WebAquarium3.1/api/picture/addPicture");
result = target
.request()
.headers(headers)
.post(requestBody, String.class);
} catch (IOException e1) {
//TODO automatisch generierter Fangblock
e1.printStackTrace();
}
//Konvertieren Sie empfangenes JSON in Klasse
System.out.println(result);
ModelAndView mv = new ModelAndView("ImageComplete");
return mv;
}
In der ersten Hälfte verarbeiten Sie nur die erfassten Daten gemäß der DB. Wichtig ist
ImageIOController.java
ObjectMapper mapper = new ObjectMapper();
Es ist ein Prozess von.
Der Verarbeitungsablauf ist wie folgt.
Konvertieren Sie hier zunächst die Anforderung in das Json-Format und bereiten Sie sie vor.
ImageController.java
//Stellen Sie den Header ein.
MultivaluedMap<String, Object> headers = new MultivaluedHashMap<>();
headers.putSingle("X-SUBDOMEIN", "api");
Ich werde die notwendigen Header für die Anfrage setzen. ** MultivaluedHashMap ** Header-Klasse für Jersey
ImageController.java
requestBody = Entity.json(mapper.writeValueAsString(pictureMaster));
Legen Sie als Nächstes die Json-Daten in der Entity-Klasse fest. Json-Daten werden mit Jackson generiert.
ImageController.java
//Senden Sie eine Post-Anfrage an die API an Ihren Server.
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://api.localhost:8080")
.path("/WebAquarium3.1/api/picture/addPicture");
result = target
.request()
.headers(headers)
.post(requestBody, String.class);
Verwenden Sie zuerst ** ClientBuilder ** und ** WebTarget **. Ich werde festlegen, zu welcher Adresse in welcher Domäne eine Verbindung hergestellt werden soll
Setzen Sie dann Überschriften und Beiträge in Überschriften und Beiträge. Die letzte ** String.class ** bedeutet die letzte "Ich erhalte die Antwort als String".
Es scheint, dass Sie es sogar mit Ihrer eigenen Klasse bekommen können, wenn Sie etwas namens JerseyProvider einstellen, aber ich werde es diesmal nicht tun (Mendokusa (ry))
Lassen Sie uns jetzt verbinden.
Ich werde die Bedienung des Bildschirms etwas weglassen. ; Tsu Д `)
Ich kann bestätigen, dass die Antwort zurück ist.
Das Bild wurde in der DB registriert!