天天看點

java修改user-agent_RestTemplate 設定 USER-AGENT

使用 Spring RestTemplate 元件之後,你會發現在使用如下代碼時:

String agent = request.getHeader("USER-AGENT").toLowerCase();

得到的 agent 不是浏覽器的資訊,而是 Java version.

如何避免這種情況呢?畢竟這個參數對服務端來說是非常重要的,尤其是下載下傳。

如下使用設定 USER-AGENT

HttpHeaders headers = new HttpHeaders();

headers.set(HttpHeaders.USER_AGENT,request.getHeader("USER-AGENT"));

HttpEntity entity = new HttpEntity<>(str, headers);

ResponseEntity obj = restTemplate.exchange(url, method, entity, byte[].class);

下面這種設定有局限性

java修改user-agent_RestTemplate 設定 USER-AGENT
java修改user-agent_RestTemplate 設定 USER-AGENT

requestMapper.getHeaders.set(HttpHeaders.USER_AGENT,"");

為什麼有局限呢?原因就是 request對象不是 HttpServletRequest,是以沒有 request.getHeader(String) 方法。