Comment ajouter un corps à une requête GET dans JAX-RS

Miguel Almeida:

J'essaie de consommer une API REST qui nécessite un corps avec une requête GET. Mais comme un GET n'a généralement pas de corps, je ne trouve pas de moyen de joindre un corps à ma demande. Je construis également l'API REST, mais le professeur ne nous permettra pas de changer la méthode en POST (il nous a donné une liste des points de terminaison que nous devons créer, ni plus, ni moins).

J'essaye de le faire comme ceci:

Response r = target.request().method(method, Entity.text(body));

Où j'ai mis le methodto GETet le bodyto my get body. Cependant, en utilisant cette approche, j'obtiens une exception:

javax.ws.rs.ProcessingException: RESTEASY004565: A GET request cannot have a body.

Existe-t-il un moyen de faire cela avec JAX-RS? Nous avons appris à utiliser JAX-RS donc je préférerais une solution utilisant ceci, car je ne suis pas sûr que mon professeur nous autoriserait à utiliser n'importe quel autre client REST. J'utilise actuellement RESTEasy, fourni par le serveur WildFly.

(Ce n'est pas un doublon de HTTP GET avec le corps de la requête car je demande comment créer une requête GET avec un corps dans JAX-RS, pas si cela doit être fait.)

Karol Dowbecki:

Cela dépend de votre implémentation JAX-RS. Cette vérification peut être désactivée dans Jersey 2.25 en utilisant la SUPPRESS_HTTP_COMPLIANCE_VALIDATIONpropriété:

ClientConfig config = new ClientConfig();
config.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true);
JerseyClient client = JerseyClientBuilder.createClient(config);
WebTarget target = client.target(URI.create("https://www.stackoverflow.com"));
Response response = target.request().method("GET", Entity.text("BODY HERE"));

Au lieu d'exception, vous obtiendrez un journal INFO

INFO: Detected non-empty entity on a HTTP GET request. The underlying HTTP transport connector may decide to change the request method to POST.

Cependant, dans RESTEasy 3.5.0.Final, il existe un enregistrement codé en dur à la fois URLConnectionEngineet ApacheHttpClient4Engine:

if (request.getEntity() != null)
{
  if (request.getMethod().equals("GET")) throw new ProcessingException(Messages.MESSAGES.getRequestCannotHaveBody());

Vous devrez créer votre propre implémentation de ClientHttpEnginepour ignorer cela. Ensuite, vous devez le fournir lors de la construction du client:

ClientHttpEngine engine = new MyEngine();
ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment ajouter un en-tête à une requête HTTP à l'aide d'un filtre dans JAX-RS?

Comment annuler une requête REST dans un WriterInterceptor Jax-RS?

Comment un service Web JAX-RS peut-il accepter uniquement les paramètres de formulaire envoyés dans le corps de la requête?

Comment ajouter la réponse d'une requête GET à un tableau dans SWIFT (Xcode)

Comment ajouter un paramètre au corps d'une requête POST avec urllib ?

Comment ajouter un jeton dans une requête http angulaire

Comment ajouter un «corps de requête» dans le noyau de sortie .net de serilog?

Comment ajouter un corps de requête à Spring Mockmvc

Impossible d'envoyer un corps dans une requête GET dans ReadyAPI / SOAPUI Pro

Comment définir un nouveau corps de requête dans Go Gin lors de la transmission d'une requête

Comment lire correctement le corps d'une requête POST dans un gestionnaire?

Comment puis-je utiliser une variable php dans un corps de requête JSON?

Comment définir le corps d'une requête POST dans un test Elixir Plug?

Comment insérer plusieurs lignes (à partir d'un corps de requête) dans une transaction

Comment envoyer un objet imbriqué dans le corps d'une requête d'API Alamofire?

comment ajouter uniq dans une requête

Est-il possible de faire une requête GET avec un corps dans Flutter?

Comment analyser le corps de la requête http Get dans un serveur Go http?

Comment utiliser la variable d'une requête dans un autre corps de test de requête dans le corps de test postman?

comment ajouter un en-tête de sécurité dans la requête jax-ws

Comment ajouter un corps à une requête HTTP à l'aide de la méthode d'échange RestTemplate de Java Spring?

Est-il possible d'ajouter un corps et des fichiers à une seule requête Axios dans JS?

Envoyer un corps JSON avec une requête HTTP get

Comment ajouter un objet JSON à ma réponse JSON dans Jax-rs?

Dans Postman, comment puis-je prendre un corps de réponse à partir d'une requête Get et le mettre dans une requête PUT avec des modifications mineures

Comment ajouter un corps dans une url dans une demande Volley dans Kotlin?

Comment ajouter une autre valeur à un champ HTTP dans une requête POST?

Comment convertir une requête POST en requête GET dans un flacon ?

Comment passer un objet json en tant que requête dans une requête get

TOP liste

  1. 1

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

  2. 2

    Uncaught TypeError: map n'est pas une fonction dans Reactjs avec Firebase

  3. 3

    Comment envoyer plusieurs variables de la lame au contrôleur

  4. 4

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  5. 5

    Concaténer des variables dans ansible

  6. 6

    Filtrer les données en fonction des conditions d'une trame de données

  7. 7

    Stop jQuery execution after one time execution

  8. 8

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  9. 9

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  10. 10

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  11. 11

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  12. 12

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  13. 13

    Comment désactiver ou activer le balayage de Viewpager dans Android

  14. 14

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  15. 15

    Générer une variable binaire avec une corrélation prédéfinie avec une variable déjà existante

  16. 16

    comment afficher un bouton au-dessus d'un autre élément ?

  17. 17

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  18. 18

    php ajouter et fusionner des données de deux tables

  19. 19

    obtenir le nombre de marqueur affiché sur la carte

  20. 20

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  21. 21

    Comment utiliser le stockage local et le supprimer lorsqu'il n'est pas nécessaire

chaudétiquette

Archive