Comment faire une requête https?


Samir Shahmuradli:

Je devrais faire une demande à l'adresse et envoyer json, json que j'ai sous la forme d'un modèle

public class RequestToPlanfix {
    private String cmd;
    private String providerId;
    private String channel;
    private String chatId;
    private String planfix_token;
    private String message;
    private String title;
    private String contactId;
    private String contactName;
    private String contactLastName;
    private String contactIco;
    private String contactEmail;
    private String contactPhone;
    private String contactData;
    @Convert(converter = Attachments.class)
    private Map<String,String> name;
    @Convert(converter = Attachments.class)
    private Map<String,String> url;
    private Boolean isEcho;
}

c'est-à-dire que je devrais envoyer json via https dont les champs correspondent aux champs de cette entité, comment puis-je obtenir et traduire cette entité en json? Comment puis-je faire une demande https plus loin?

alors je recevrai la réponse sous forme de json, dont les champs sont les champs de l'entité suivante

c'est-à-dire que je vais obtenir json et je devrais le faire parse

public class RequestFromPlanfix {
    private String cmd;
    private String providerId;
    private String chatId;
    private String contactPhone;
    private String channel;
    private String token;
    private String message;
    private String userName;
    private String userLastName;
    private String userIco;
    private String taskEmail;
    @Convert(converter = Attachments.class)
    private Map<String,String> name;
    @Convert(converter = Attachments.class)
    private Map<String,String> url;
}

les champs dans deux cas sont différents à certains endroits, j'ai donc créé deux entités, puis lorsque nous enverrons la demande nous enverrons le premier json, et lorsque nous recevrons la réponse le deuxième json, je ne comprends pas comment faire la demande et associer le json avec l'entité, merci

entrez la description de l'image ici

   String postUrl = "www.site.com";
    Gson gson = new Gson();
    HttpClient httpClient = HttpClientBuilder.create().build();
    HttpPost post = new HttpPost(postUrl);
    StringEntity postingString = new StringEntity(gson.toJson(requestToPlanfix));//gson.tojson() converts your pojo to json
    post.setEntity(postingString);
    post.setHeader("Content-type", "application/json");
    HttpResponse response = httpClient.execute(post);
Vivek:

Vous devez donc passer un HTTP POSTappel.

Et comme il est expliqué votre requestcorps ressemble RequestToPlanfix.javaet votre attend Responsesera comme RequestFromPlanfix.java.

De plus, vous utilisez GSONpour la transformation.

Maintenant, je vous conseille de redéfinir vos modèles ( RequestToPlanfix.java& RequestFromPlanfix.java) comme:

  • Allez sur: http://www.jsonschema2pojo.org/

  • Collez d'abord votre JSONdemande et choisissez GSON, Javaet tout champ supplémentaire que vous jugez valide.

  • Générez ensuite vos anciens objets Java simples à partir de là.
  • De cette façon, nous sommes sûrs qu'il n'y a rien de mal dans notre compréhension JSON - JAVA.
  • De même, en fonction du responseJSON que vous attendez, générez votre fichier RequestFromPlanfix.java.
  • Remplacez vos POJO existants par ceux générés ci-dessus.

Maintenant, faisons l' HTTP callutilisation de Spring RestTemplate:

public class MakeRestCall {

  @Autowired
  private RestTemplate restTemplate;

  public void getResponse(){

      String postUrl = "www.site.com";

      // get your request object ready
      RequestToPlanfix requestObject = getRequestObject();

      // initialize HttpEntity 
      HttpEntity<RequestToPlanfix> httpEntity = new HttpEntity<>(requestObject);
      ResponseEntity<RequestFromPlanfix> response = restTemplate.exchange(postUrl, HttpMethod.POST, httpEntity, RequestFromPlanfix.class);
      RequestFromPlanfix responseObject = response.getBody();
      // carry-on with your other stuff
    }

J'espère que cela t'aides.

Articles connexes


Comment faire une requête https avec un mauvais certificat?

haut navire: Disons que je veux être https://golang.orgprogrammé. Actuellement, golang.org (ssl) a un mauvais certificat qui est émis à *.appspot.comSo quand je lance ceci: package main import ( "log" "net/http" ) func main() { _, err := http.Get

Comment faire une requête AJAX HTTPS GET à l'aide de jQuery

Sans PeurAvenir Comment puis-je faire explicitement une requête AJAX HTTPS GET à l'aide de jQuery? J'essaye de faire ce qui suit. Sur une page https, j'ai une ligne avec le code $.get("/resource"), mais j'obtiens l'erreur suivante XMLHttpRequest cannot load ht

Comment faire une requête HTTPS de Phoenix et ignorer l'erreur CA

ardhitama J'essaie d'appeler un service REST d'environnement de développement à partir de mon serveur phoenix, mais je ne veux pas mettre le CA en liste blanche. Pour mémoire, je ne sais même pas comment ajouter la clé CA à la liste blanche de Phoenix. Comment

Comment faire une requête HTTPS à un serveur en Swift?

Labeo J'ai un certificat de serveur et un certificat client qui doivent être inclus dans la demande pour authentifier le serveur y a-t-il un tutoriel ou une référence pour faire de telles demandes en swift je suis capable de faire en java mais je suis nouveau

comment faire une requête https en python 3

Siddharth Sampath Je souhaite télécharger un fichier depuis mon serveur en utilisant le protocole https. Comment dois-je procéder? Ceci est mon code de base avec http response=requests.get('http://url',stream='True') handle=open('dest_file.txt','wb') for chun

Comment faire une requête https conditionnelle?

Arpan Kc C'est essentiellement ce que j'essaye de faire: var sendRequest= false; //may be true https.request(request_params, function(response){ //only sends a request if sendRequest == true //do something with response if request has been sent

NodeJS - Faire une requête HTTPS GET

Léonard Carraro Je ne parviens pas à exécuter une requête HTTPS de mon serveur Web NodeJS vers un service public. Ici le code : const https = require('https'); var httpOptions = { hostname: <URL>, path: <PATH>, port

Comment faire une requête HTTPS depuis mule ESB ?

utilisateur2848031 Comment faire une requête HTTPS sans port depuis le composant HTTP ? Je ne peux pas utiliser l'url avec le port 443 ou 80 car le numéro de port s'ajoute simplement à l'url et il indique une URL invalide. Alors, comment faire une demande just