2016-10-14 4 views
0

저는 웹 서비스의 초보자이며 ResponseEntity에 http 요청을 추가하려고합니다.하지만 잘못 생각합니다.ResponseEntity에 http 요청을 추가하십시오.

@RequestMapping(value = "/apiproxy", method = RequestMethod.GET, produces = "application/json") 
public ResponseEntity get(HttpServletRequest request, 
     @RequestParam("productName") String productName, 
     @RequestParam("version") String version) { 

    try {  
     String proxyName = productName.replaceFirst("_product", "") + "_" + version; 
     ValidateTransferData result = new ValidateTransferData(); 
     result.setIsProxy(isProxy); 
     result.setIsProduct(isProduct); 

    //Get Token 
     String url = "http://apibm.fr/token"; 

     URL obj = new URL(url); 
     HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

     // optional default is GET 
     con.setRequestMethod("GET"); 

     int responseCode = con.getResponseCode(); 
     System.out.println("\nSending 'GET' request to URL : " + url); 
     System.out.println("Response Code : " + responseCode); 

     BufferedReader in = new BufferedReader(
       new InputStreamReader(con.getInputStream())); 
     String inputLine; 
     StringBuffer response = new StringBuffer(); 

     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     in.close(); 

     return new ResponseEntity<>(result, HttpStatus.OK);    
    } 

어떻게 요청을 추가 할 수 있습니까?

정말 고마워요.

+0

나는 정말로 당신의 질문을 얻지 못하고, 나는 당신이 샘플 코드로 달성하고자하는 것을 이해할 수 없다. 'StringBuffer 응답'으로 정확히 무엇을하고 있습니까? 어쨌든, 문제가 발생하면 응답에'HttpServletRequest'를 첨부하고 싶습니다. 이것은 Serializable이 아니기 때문에 수행 할 수 없습니다. 사용자 지정 래퍼가 필요할 수도 있습니다.이 [질문] (http://stackoverflow.com/questions/14410172/how-serialize-httpservletrequest-httpservletresponse) 또는 [this] (http://stackoverflow.com/questions/33900388/java-lang-stackoverflowerror-converting-httpservletrequest-to-json) – AntJavaDev

답변

0

파라메타에 넣을 필요가 없습니다. 간단히 autowire :

@Autowired 
private HttpServletRequest request; 

@RequestMapping(value = "/apiproxy", method = RequestMethod.GET, produces = "application/json") 
public ResponseEntity get(@RequestParam("productName") String productName, 
    @RequestParam("version") String version) { 

try {  
    String proxyName = productName.replaceFirst("_product", "") + "_" + version; 
    ValidateTransferData result = new ValidateTransferData(); 
    result.setIsProxy(isProxy); 
    result.setIsProduct(isProduct); 

//Get Token 
    String url = "http://apibm.fr/token"; 

    URL obj = new URL(url); 
    HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

    // optional default is GET 
    con.setRequestMethod("GET"); 

    int responseCode = con.getResponseCode(); 
    System.out.println("\nSending 'GET' request to URL : " + url); 
    System.out.println("Response Code : " + responseCode); 

    BufferedReader in = new BufferedReader(
      new InputStreamReader(con.getInputStream())); 
    String inputLine; 
    StringBuffer response = new StringBuffer(); 

    while ((inputLine = in.readLine()) != null) { 
     response.append(inputLine); 
    } 
    in.close(); 

    return new ResponseEntity<>(result, HttpStatus.OK);    
} 

그런 다음 사용하십시오.

+0

이해가 안됩니다 ... – Bourg

+0

전체 솔루션으로 편집 됨 –

관련 문제