Saya ingin mengirim permintaan HTTP PATCH melalui Spring RestTemplate yang berisi array operasi yang diwakili oleh objek berikut:

@Data
@AllArgsConstructor
public class JsonOperation {
    private String op;
    private String path;
    private String value;
}

Mempertimbangkan kode berikut:

List<JsonOperation> operations = new ArrayList<>();
operations.add(new JsonOperation("replace", "/path1", "value1"));
operations.add(new JsonOperation("replace", "/path2", "value2"));
operations.add(new JsonOperation("replace", "/path3", "value3"));

Apakah mungkin melakukan reqeust menggunakan restTemplate sebagai berikut?

restTemplate.patchForObject(url+"/toPatch/"+toPatchId, operations, ResponseEntity.class);
0
mattobob 9 Agustus 2019, 11:54

1 menjawab

Jawaban Terbaik

Karena Bug, RestTemplate of Spring default tidak mengirim permintaan Patch Http.

Saat mengatasi org.springframework.http.client.HttpComponentsClientHttpRequestFactory dapat digunakan untuk mengganti RestTemplate:

@Bean
public RestTemplate httpComponentsClientRestTemplate() {
    final HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
    requestFactory.setConnectTimeout(3000);
    requestFactory.setReadTimeout(3000));
    return new RestTemplate(requestFactory);
}
0
mattobob 24 September 2019, 10:38