So senden Sie die HTTP-Postanforderung mit Anwendung/x-www-form-rencodedJava

Java-Forum
Anonymous
 So senden Sie die HTTP-Postanforderung mit Anwendung/x-www-form-rencoded

Post by Anonymous »

Ich versuche, ein Token von einer externen Website zu generieren. Die Postanforderung muss eine Anwendung/x-www-form-urlencodiert sein, aber ich erhalte Fehler. Ich gehe davon aus, dass ich nicht den richtigen Anruf für die Inhaltstypanwendung /x-www-form-rencoded mache, aber ich kann nicht herausfinden, wie !!
PS: Ich verwende Springboot mit Java 8 < /p>
Hier ist der Code: < /p>

Code: Select all

public String getNewAccesToken() {

//Initilazing variabels
try {

JsonObject properties = new JsonObject();

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("Cookie", cookie);
properties.addProperty("client_id", clientId);
properties.addProperty("client_secret", clientSecret);
properties.addProperty("grant_type", grantType);

HttpEntity requestEntity = new HttpEntity(properties.toString(), headers);
log.debug(requestEntity);
ResponseEntity response = restTemplate.exchange(requestUrl, HttpMethod.POST, requestEntity,
String.class);

log.debug("---------------------------------");
log.debug(response);
if (Util.isJSONValid(response.getBody())) {
JsonParser parser = new JsonParser();
JsonObject jsonString = (JsonObject) parser.parse(response.getBody());
return jsonString.get("accessToken").getAsString();
} else {

error.setCode(ConstantGateway.JSON_ERROR_CODE);
error.setMessage(ConstantGateway.JSON_ERROR_STATUS);
return error.toString();
}
} catch (HttpStatusCodeException e) {
error.setCode(String.valueOf(e.getStatusCode().value()));
error.setMessage(e.getResponseBodyAsString());
return error.toString();
} catch (Exception e) {
// TODO: handle exception
error.setCode(ConstantGateway.IL_INTERNAL_ERROR_CODE);
error.setMessage(e.getMessage());
return error.toString();
}

}
< /code>
Und hier ist, was ich beim Aufrufen dieser Funktion bekomme: < /p>
org.zwz.vas.internal.api.model.ErrorModel@16dd359c

Wenn ich jedoch den Anruf von Postman tätige, erhalte ich die richtige Antwort, nämlich:

Code: Select all

{
"access_token": "RdWt3DNIfxmihnubGX0Fgfcb0KNHLZV79OfN9Y6Ky6Z3fxAfF_Pm7uP0jnFrG1fHplyBMZ74BIKleQ8jmswdGy4e87NV-uZsMzgS1nQAONc2nBxgU1_jkMBhL4vvIniJNd99oYNzGeanCYYki0yorrrlLrOGTncusv1BgFFHU_CBGuUtGmZYLfJAJW4XcZLhXMC9xpT2aWAvgRXZW69pOhfU1Fgs7aVwou85UVI2b4j1GfX0pCtJtluiTgXsuWqdck7_at1dqfopHpjWAywYrweStMXGm8T59nyQi_oXWmo",
"token_type": "bearer",
"expires_in": 1199
}
Vielen Dank im Voraus

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post