gpt4 book ai didi

java - http 请求拦截器 - 使用 cxf 的 Restful Web 服务

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:31 25 4
gpt4 key购买 nike

尝试向我的 Restful 服务收到的每个请求添加 header 。下面的入站 http 拦截器被调用,但不添加 header 。

    package com.client.interceptors;

import java.util.Collections;
import java.util.List;
import java.util.Map;

import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;

public class ClientInterceptor extends AbstractPhaseInterceptor<Message> {
public ClientInterceptor() {
super(Phase.PRE_INVOKE); // Put this interceptor in this phase
System.out.println("inside constructor");
}

public void handleMessage(Message msg) throws Fault {
// process the message

System.out.println("inside interceptor");
Map<String, List> headers = (Map<String, List>) msg
.get(Message.PROTOCOL_HEADERS);

headers.put("token",
Collections.singletonList("abcd1234xyz56sa"));

msg.put(Message.PROTOCOL_HEADERS, headers);

}
}

如何实现这一目标?

最佳答案

嗯,我有一个解决方案。看看这个。这可能会有所帮助。

Client client = Client.create();
WebResource webResource =client.resource("URL");

MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add("json", js); //set parametes for request

appKey = "Addkey " + appKey; // appKey is unique number

//Get response from RESTful Server get(ClientResponse.class);
ClientResponse response = null;
response = webResource.queryParams(queryParams)
.header("Content-Type", "application/json;charset=UTF-8")
.header("Authorization", appKey)
.get(ClientResponse.class);

String jsonStr = response.getEntity(String.class);

关于java - http 请求拦截器 - 使用 cxf 的 Restful Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967073/

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