gpt4 book ai didi

java - 在 CXF 客户端中启用 gzip 压缩

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:04:09 25 4
gpt4 key购买 nike

我正在尝试让我的客户使用 gzip。我在服务器中启用了 GZip 功能。客户端似乎没有发送正确的 header :

POST /api/v1/data HTTP/1.1
Content-Type: text/xml; charset=UTF-8
Accept: */*
SOAPAction: ""
User-Agent: Apache CXF 2.6.2
Cache-Control: no-cache
Pragma: no-cache
Host: localhost:8001
Connection: keep-alive
Content-Length: 539

这是我创建客户端的代码:

 private static final QName SERVICE_NAME = new QName(
"http://xxx/", "IData");
private static final QName PORT_NAME = new QName(
"http://xxx/", "IDataPort");
IData port;

public void initPort() {
Service service = Service.create(SERVICE_NAME);
// Endpoint Address
String endpointAddress = ClientUtil.getUrl()
+ "data";

// Add a port to the Service
service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING,
endpointAddress);

port = service.getPort(IData.class);
}

IData接口(interface)实现有GZip注解:

@WebService
@GZIP
public interface IData ....

最佳答案

解决方法:

修改后,这是你需要的:

Client client = ClientProxy.getClient(port);
client.getInInterceptors().add(new GZIPInInterceptor());
client.getOutInterceptors().add(new GZIPOutInterceptor());

之后就成功了。

关于java - 在 CXF 客户端中启用 gzip 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12523365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com