Skip to content

Commit 7470f18

Browse files
author
gongwn1
committed
fix: http sse client connect timeout
1 parent 3bbdefb commit 7470f18

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,7 @@ public HttpClientSseClientTransport(HttpClient.Builder clientBuilder, String bas
170170
@Deprecated(forRemoval = true)
171171
public HttpClientSseClientTransport(HttpClient.Builder clientBuilder, HttpRequest.Builder requestBuilder,
172172
String baseUri, String sseEndpoint, ObjectMapper objectMapper) {
173-
this(clientBuilder.connectTimeout(Duration.ofSeconds(10)).build(), requestBuilder, baseUri, sseEndpoint,
174-
objectMapper);
173+
this(clientBuilder.build(), requestBuilder, baseUri, sseEndpoint, objectMapper);
175174
}
176175

177176
/**
@@ -241,9 +240,7 @@ public static class Builder {
241240

242241
private String sseEndpoint = DEFAULT_SSE_ENDPOINT;
243242

244-
private HttpClient.Builder clientBuilder = HttpClient.newBuilder()
245-
.version(HttpClient.Version.HTTP_1_1)
246-
.connectTimeout(Duration.ofSeconds(10));
243+
private HttpClient.Builder clientBuilder = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1);
247244

248245
private ObjectMapper objectMapper = new ObjectMapper();
249246

@@ -252,6 +249,8 @@ public static class Builder {
252249

253250
private AsyncHttpRequestCustomizer httpRequestCustomizer = AsyncHttpRequestCustomizer.NOOP;
254251

252+
private Duration connectTimeout = Duration.ofSeconds(10);
253+
255254
/**
256255
* Creates a new builder instance.
257256
*/
@@ -383,13 +382,25 @@ public Builder asyncHttpRequestCustomizer(AsyncHttpRequestCustomizer asyncHttpRe
383382
return this;
384383
}
385384

385+
/**
386+
* Sets the connection timeout for the HTTP client.
387+
* @param connectTimeout the connection timeout duration
388+
* @return this builder
389+
*/
390+
public Builder connectTimeout(Duration connectTimeout) {
391+
Assert.notNull(connectTimeout, "connectTimeout must not be null");
392+
this.connectTimeout = connectTimeout;
393+
return this;
394+
}
395+
386396
/**
387397
* Builds a new {@link HttpClientSseClientTransport} instance.
388398
* @return a new transport instance
389399
*/
390400
public HttpClientSseClientTransport build() {
391-
return new HttpClientSseClientTransport(clientBuilder.build(), requestBuilder, baseUri, sseEndpoint,
392-
objectMapper, httpRequestCustomizer);
401+
HttpClient httpClient = this.clientBuilder.connectTimeout(this.connectTimeout).build();
402+
return new HttpClientSseClientTransport(httpClient, requestBuilder, baseUri, sseEndpoint, objectMapper,
403+
httpRequestCustomizer);
393404
}
394405

395406
}

0 commit comments

Comments
 (0)