Maison >Java >Envoyer JSON à l'aide de fichiers image dans Postman

Envoyer JSON à l'aide de fichiers image dans Postman

WBOY
WBOYavant
2024-02-09 16:24:08863parcourir

L'éditeur PHP Xigua vous présentera comment utiliser des fichiers image pour envoyer du JSON dans Postman. Postman est un puissant outil de développement d'API qui peut aider les développeurs à effectuer des tests et du débogage d'interface. Normalement, nous utilisons Postman pour envoyer des données JSON, mais que se passe-t-il si nous devons inclure des fichiers image dans JSON ? Cet article présentera en détail comment implémenter cette fonction dans Postman à travers quelques étapes simples, vous permettant d'utiliser Postman pour tester l'interface de manière plus flexible. Que vous soyez débutant ou développeur expérimenté, vous obtiendrez des conseils pratiques et des connaissances grâce à cet article. Découvrons-le ensemble !

Contenu de la question

Je souhaite envoyer un fichier json avec des images dans postman mais j'ai l'erreur suivante :

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

Contrôleur expert

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);
    }
}

Service expert

@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;

}

Dans Postman, ma première ligne est json et ce fichier json

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

Dans la deuxième ligne, j'ai défini l'image là où se trouve le problème

Workaround

Votre paramètre @requestparam("image") multipartfile image semble correct.

La prochaine chose à faire est donc de vous assurer d'indiquer à Spring que vous souhaitez autoriser les fichiers en plusieurs parties.

Ceci est un exemple application.propertiesConfiguration :

spring.servlet.multipart.enabled=true

Paramètres de configuration supplémentaires pour contrôler la taille du téléchargement :

# 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

Je soupçonne que le paramètre @requestbody expert expert devrait avoir quelque chose à voir avec cela.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer