[JAVA] Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 2 (Client Edition)

Ich habe eine API erstellt, daher werde ich versuchen, eine Verbindung herzustellen.

So erstellen Sie eine API hier

Verbinden Sie sich mit Jersey.

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.

  1. Legen Sie die erforderlichen Header für die API fest.
  2. Bereiten Sie die Anforderungsentität vor
  3. Setzen Sie den Header und fordern Sie POST an und führen Sie ihn aus.

Konvertieren Sie hier zunächst die Anforderung in das Json-Format und bereiten Sie sie vor.

1. Legen Sie die erforderlichen Header für die API fest.

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

2. Bereiten Sie die Anforderungsentität vor

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.

3. Setzen Sie den Header und fordern Sie POST an und führen Sie ihn aus.

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 verbinden

Lassen Sie uns jetzt verbinden.

Ich werde die Bedienung des Bildschirms etwas weglassen. ; Tsu Д `)

Ich kann bestätigen, dass die Antwort zurück ist. image.png

Das Bild wurde in der DB registriert! image.png

Recommended Posts

Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 2 (Client Edition)
Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 1 (API Edition)
Ich habe mit Spring Framework eine API-Domain erstellt. Teil 2
Ich habe im Frühjahr einen Restful-Server und -Client erstellt.
Ich habe ein einfaches Suchformular mit Spring Boot + GitHub Search API erstellt.
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (PowerMockito Edition)
"Lehrer, ich möchte im Frühjahr eine Anmeldefunktion implementieren" ① Hallo Welt
Ich habe Mosaikkunst mit Pokemon-Bildern gemacht
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 (Black Magic) ausgeben.
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich möchte eine Funktion in der Rails Console definieren
Ich habe versucht, mit Java und Spring eine Funktion / einen Bildschirm für den Administrator einer Einkaufsseite zu erstellen
Beispiel für eine minimale RESTful-API-Konfiguration mit Jersey + Spring Framework
Spring Boot: Restful API-Beispielprojekt
Spring Boot Access Authorization RESTful API
Implementieren Sie die REST-API mit Spring Boot
Starten Sie mit IntelliJ ein (altes) Spring Boot-Projekt
Erstellen Sie mit IntelliJ ein Java Spring Boot-Projekt
Wichtige Änderungen in der Kernfunktionalität von Spring Framework 5.0
Beispielcode zum Aufrufen der Yahoo! Shopping Product Search (v3) -API mit Spring RestTemplate
Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 1 (API Edition)
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich habe mit Gem in Ruby nach einem Webframework gesucht
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich habe einen RESAS-API-Client in Java erstellt
Rails war schwierig, deshalb habe ich so etwas wie einen Spring Framework-Controller gemacht, um eine Pause einzulegen
Ich möchte eine Browsing-Funktion mit Ruby on Rails hinzufügen
02. Ich habe eine API erstellt, um eine Verbindung von Spring Boot zu MySQL (My Batis) herzustellen.
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 1) erstellt.
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 5) erstellt:
Ich wollte die JavaFX-Programmierung mit dem Spring Framework vereinfachen
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
Ich habe mit Swing eine GUI erstellt
Ich habe eine einfache Empfehlungsfunktion erstellt.
Ich habe mit Spring Framework eine API-Domain erstellt. Teil 2
Ich habe mit Gem in Ruby nach einem Webframework gesucht
Ich habe den Sammlungsrahmen zusammengefasst.
Ich möchte Bilder mit REST Controller von Java und Spring anzeigen!
Ich möchte im Dialogfeld mehrere Elemente mit einem benutzerdefinierten Layout auswählen
Ich habe den Ablauf der TCP-Kommunikation mit Spring Integration (Client Edition) untersucht.
Ich möchte ein chinesisches (koreanisches) PDF mit dünnen Berichten anzeigen
Ich habe eine Lambda-Funktion in Java geschrieben und mit SAM bereitgestellt
Ich möchte für jedes Array mit Lambda-Ausdruck in Java
[LINE BOT] Ich habe einen Ramen BOT mit Java (Maven) + Heroku + Spring Boot (1) gemacht.
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 2) erstellt: Modell ändern
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe eine Janken App mit Kotlin gemacht
Ich habe eine Janken App mit Android gemacht
Lassen Sie uns eine TODO-Anwendung mit Java 2 erstellen. Ich möchte eine Vorlage mit Spring Initializr erstellen und eine Hello-Welt erstellen
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 3 ~ Übung ~ erstellt
Ich habe versucht, mit HCE-F von Android eine Funktion zu implementieren, die Felica Lite entspricht
Einführung von # 10 devise_token_auth zum Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6
03. Ich habe eine Anfrage von Spring Boot an die Postleitzahlensuch-API gesendet
Sogar in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (Javassist zweite Abkochung)
[Go To Travel] Ich suchte nach einem Plan mit einer Quo-Karte
Ich habe einen THETA API-Client erstellt, der für die Plug-Entwicklung verwendet werden kann
Einführung des Experten Nr. 15 zum Erstellen einer Bulletin-Board-API mit Zertifizierung und Autorisierung in Rails 6
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports Extra Edition (Variables Edition) zu drucken.
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports Extra Edition (Bildausgabe) zu drucken.
SpringSecurity Ich war süchtig danach, mich mit einem Hash-Passwort anzumelden (gelöst)
Ich habe versucht, eine Webanwendung voller Fehler mit Spring Boot zu klonen
Ich habe ein Beispiel erstellt, wie ein Delegat in Swift UI 2.0 mit MapKit geschrieben wird
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (Royal Road Edition, die weder Magie noch irgendetwas ist)
04. Ich habe mit SpringBoot + Thymeleaf ein Frontend gemacht