2016-10-14 11 views
0

私はWebサービスの初心者です.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 response'を使って正確に何をしていますか?とにかく、あなたの問題が出たら、 '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

パラマウントに入れる必要はありません。単にそれをオートワイヤーしてください:

@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

フルソリューションで編集 –

関連する問題