我试图使用 CXF(版本 3.1.3)客户端使用 PATCH 方法调用 API。
尝试按照以下线程中指定的步骤进行操作,但无法解决。只获取 URLConnectionHttpConduit 而不是 AsyncHttpConduit
http://cxf.apache.org/docs/asynchronous-client-http-transport.html
验证 CXF HttpAsyncClient 使用 use.async.http.conduit 上下文属性
这是代码片段:
Bus bus = BusFactory.getDefaultBus();
// insist on the async connector to use PATCH.
bus.setProperty(AsyncHTTPConduit.USE_ASYNC,
AsyncHTTPConduitFactory.UseAsyncPolicy.ALWAYS);
WebClient webClient = WebClient.create(request.getRestURL());
WebClient.getConfig(webClient).getBus().setProperty
(AsyncHTTPConduit.USE_ASYNC, AsyncHTTPConduitFactory.UseAsyncPolicy.ALWAYS);
WebClient.getConfig(webClient).getRequestContext()
.put(AsyncHTTPConduit.USE_ASYNC, AsyncHTTPConduitFactory.
UseAsyncPolicy.ALWAYS);
HTTPConduit conduit = (HTTPConduit)WebClient.getConfig(webClient)
.getConduit();
System.out.println(conduit.getClass().getName());
Response response = webClient.invoke(request.getMethod(), null);
System.out.println("service response = "+ response);
我什至尝试使用带有 POST 请求的 X-HTTP-Method-Override=PATCH 标头,
其他服务是使用 RestEasy 实现的,看起来就像不尊重 X-HTTP-Method-Override 标头。
你能帮我找到问题吗。