2014-04-01 45 views
0

有沒有辦法在REST方法中獲取http請求(標頭內容)?我正在使用spring框架。在REST方法中獲取原始請求(springframework)

我想從當前請求到REST方法中的另一個服務器構建一個新的請求。這更像是代理/轉發服務 - 所以我想在原始請求中保留我想要的東西。 我沒有太多的選擇 - 另外我不會使用REST這樣的東西。

Spring框架提供了這樣的接口嗎?

例如 - 如果我想要得到的請求頭保持在下面的代碼(從spring.io示例代碼)的問候方法

@Controller 
public class GreetingController { 

    private static final String template = "Hello, %s!"; 
    private final AtomicLong counter = new AtomicLong(); 

    @RequestMapping("/greeting") 
    public @ResponseBody Greeting greeting(
      @RequestParam(value="name", required=false, defaultValue="World") String name) { 
     return new Greeting(counter.incrementAndGet(), 
          String.format(template, name)); 
    } 
} 
+1

你是什麼意思的REST處理程序? –

+0

修改了這個問題 - 這是我的REST方法 – neblinc1

+0

仍然不知道那是什麼。它是一個'@ RequestMapping'處理程序方法嗎?向我們展示一個例子。 –

回答

2

你可以簡單地給你的處理方法的參數輸入HttpServletRequest,Spring將爲您提供。

@RequestMapping("/greeting") 
public @ResponseBody Greeting greeting(
     @RequestParam(value="name", required=false, defaultValue="World") String name, 
     HttpServletRequest request) { 

HttpServletRequest提供了多個methods來檢索HTTP標頭。

另外,Spring還提供了@RequestHeader註釋,它可以像@RequestParam一樣用於從HTTP請求中檢索標頭。

+0

太好了,我會試試這個。 – neblinc1