Skip to content

not possible to customize HTTP request config #1225

Description

@cqbbsunchen

Describe the Bug

cloud sdk java v5.31.0 is used.
It is not possible to customize HTTP request config. ResponseTimeout is important config parameter for us.
Here is sample code :

final RequestConfig REQUEST_CONFIG = RequestConfig.custom()
.setCookieSpec(StandardCookieSpec.IGNORE)
.setConnectionRequestTimeout(DURATION_TIMEOUT_5_SECONDS)
.setResponseTimeout(DURATION_TIMEOUT_5_SECONDS)
.build();

final String destinationName = "MY_BACKEND_ALIAS";
final Try tryDestination = DestinationAccessor.tryGetDestination(destinationName);

final Function<Destination, HttpDestination> AS_HTTP = Destination::asHttp;
final Try tryHttpClient = tryDestination.map(AS_HTTP).flatMap(ApacheHttpClient5Accessor::tryGetHttpClient);

final HttpPost request = new HttpPost("");
request.setConfig(REQUEST_CONFIG);
request.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE);
request.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
final HttpResult result = tryHttpClient.get().execute(request, HttpResult::new);
...
The class ApacheHttpClient5Wrapper discard the RequestConfig and exclusively use its own : https://github.com/SAP/cloud-sdk-java/blob/main/cloudplatform/connectivity-apache-httpclient5/src/main/java/com/sap/cloud/sdk/cloudplatform/connectivity/ApacheHttpClient5Wrapper.java#L94

The class DefaultApacheHttpClient5Factory use a near hardcoded RequestConfig : https://github.com/SAP/cloud-sdk-java/blob/main/cloudplatform/connectivity-apache-httpclient5/src/main/java/com/sap/cloud/sdk/cloudplatform/connectivity/DefaultApacheHttpClient5Factory.java#L167

setCookieSpec and setResponseTimeout cannot be configured nor injected.

Steps to Reproduce

see code example above.

Expected Behavior

see code example above.

Screenshots

No response

Used Versions

  • Java and Maven version via mvn --version: Java 25
  • SAP Cloud SDK version: v5.31.0
  • Spring Boot or CAP version: Spring Boot v3.5.15
Dependency tree via mvn dependency:tree
Dependency tree here

Code Examples

// Your code here

Stack Trace

No response

Log File

Log file ...

Affected Development Phase

Already deployed to production eu20 and ap20.

Impact

High impact on service in live landscape since ResposneTimeout is very important parameter.

Timeline

ASAP

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions