发送get请求时,发送请求头(Header)中的内容
方便第二次调用其他url时传递参数,例如userCode或者租户编码
调用方式
java
@Autowired
private HttpServletRequest request;
先注入HttpServletRequest
public xxx xxx(){
String url = "http://" + ip +":8082/inAndOut/into/xxxxxx";
String userCode = request.getHeader("usercode");
//动态传递Header中的userCode,用来给组件服务接口传userCode
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put("Authorization", "Bearer your_token_here");
headers.put("tenantcode", tenantCode);
headers.put("userCode", userCode);
String request = HttpClientUtil.sendGetWithHeaders(url,headers);
}
userCode和tenantCode可以从Header中获取,前端也一样,这是在PostMan中测试
工具类
java
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class GetWithHeadersExample {
public static void main(String[] args) {
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put("Authorization", "Bearer your_token_here");
String url = "http://example.com/api/endpoint";
try {
String response = sendGetWithHeaders(url, headers);
System.out.println("Response: " + response);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String sendGetWithHeaders(String url, Map<String, String> headers) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url);
for (Map.Entry<String, String> entry : headers.entrySet()) {
httpGet.addHeader(entry.getKey(), entry.getValue());
}
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
String responseBody = EntityUtils.toString(entity);
httpClient.close();
return responseBody;
}
}