Heim >Java >Senden Sie JSON mithilfe von Bilddateien in Postman

Senden Sie JSON mithilfe von Bilddateien in Postman

WBOY
WBOYnach vorne
2024-02-09 16:24:08882Durchsuche

PHP-Editor Xigua zeigt Ihnen, wie Sie Bilddateien zum Senden von JSON in Postman verwenden. Postman ist ein leistungsstarkes API-Entwicklungstool, das Entwicklern beim Testen und Debuggen von Schnittstellen helfen kann. Normalerweise verwenden wir Postman zum Senden von JSON-Daten, aber was ist, wenn wir Bilddateien in JSON einbinden müssen? In diesem Artikel wird anhand einiger einfacher Schritte detailliert beschrieben, wie Sie diese Funktion in Postman implementieren, sodass Sie Postman flexibler für Schnittstellentests verwenden können. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, in diesem Artikel erhalten Sie praktische Tipps und Wissen. Finden wir es gemeinsam heraus!

Frageninhalt

Ich möchte eine JSON-Datei mit Bildern in Postman senden, habe aber die folgende Fehlermeldung erhalten:

"status": 415,
"error": "unsupported media type",

Experten-Controller

package com.shayanr.homeservicespring.controller;

import com.shayanr.homeservicespring.entity.users.expert;
import com.shayanr.homeservicespring.service.expertservice;
import lombok.requiredargsconstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.multipartfile;

import java.io.file;
import java.io.ioexception;

@restcontroller
@requestmapping("/expert")
@requiredargsconstructor
public class expertcontroller {
    private expertservice expertservice;

    @postmapping("/register")
    public void register(@requestbody expert expert,
            @requestparam("image") multipartfile image) throws ioexception {
        expertservice.signup(expert, image);
    }
}

Expertenservice

@override
@transactional
public expert signup(expert expert, multipartfile image) throws ioexception {
    if (expert == null) {
        throw new nullpointerexception("null expert");
    }
    if (!validate.namevalidation(expert.getfirstname()) ||
            !validate.namevalidation(expert.getlastname()) ||
            !validate.emailvalidation(expert.getemail()) ||
            !validate.passwordvalidation(expert.getpassword())) {
        throw new persistenceexception("wrong validation");
    }
    string extension = filenameutils.getextension(image.getname());
    if (extension.equalsignorecase("video") || extension.equalsignorecase("mp4")) {
        throw new persistenceexception("invalid image format. only image files are allowed.");
    }
    expert.setconfirmation(confirmation.new);

    byte[] imageinbytes = image.getbytes();
    expert.setimage(imageinbytes);
    expertrepository.save(expert);
    return expert;

}

In Postman ist meine erste Zeile JSON und diese JSON-Datei

{
  "firstName": "Sasa",
  "lastName": "Weel",
  "email": "[email protected]",
  "password": "Sasasd1@",
  "signUpDate": "2024-01-31",
  "signUpTime": "10:00:00"
}

In der zweiten Zeile setze ich das Bild dort, wo das Problem liegt

Workaround

Ihr @requestparam("image") multipartfile image Parameter sieht korrekt aus.

Als nächstes sollten Sie Spring mitteilen, dass Sie mehrteilige Dateien zulassen möchten.

Dies ist ein Beispiel application.properties Konfiguration:

spring.servlet.multipart.enabled=true

Zusätzliche Konfigurationseinstellungen zur Steuerung der Upload-Größe:

# Adjust these file size restrictions and location as nessessary
spring.servlet.multipart.max-file-size=2MB
spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.location=/temp

Ich vermute, dass der @requestbody expert expert-Parameter etwas damit zu tun haben sollte.

Das obige ist der detaillierte Inhalt vonSenden Sie JSON mithilfe von Bilddateien in Postman. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen