2017-07-18 6 views
-2

以下に示すように、JSON配列データを使用してJAVA GET Http接続要求を作成しようとしています。同じコードがURL内の文字をエスケープするには任意のパラメータ(?すなわちデータ= {..})JSON配列をパラメータとして使用してJAVA GET要求を呼び出す方法

String myurl = "https://myserver.com/test/api/v1/parameter?data={"username":{"name":"testusername"},"salary":{"sal":"56748","bonus":"3221"},"category":{"cat":"CATA"}}"; 
String newmyurl = myurl.replaceAll("\"","\\\""); 
     log.info("**newmyurl*** "+newmyurl); 
     URL url = new URL(newmyurl);    
     log.info("**URL*** "+url); 
     HttpURLConnection con = (HttpURLConnection) url.openConnection();    
      // By default it is GET request 
      con.setRequestMethod("GET"); 
      con.setRequestProperty("Accept", "application/json");    
      int responseCode = con.getResponseCode(); // Code breaks here nothing errors in log 
      BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
     String output; 
     StringBuffer sb = new StringBuffer();  
     while ((output = in.readLine()) != null) { 
     sb.append(output); 
     } 
     in.close(); 

     //printing result from response 
     log.info("****return string****"+sb.toString()); 
+0

あなたのコードは有効なJavaではありません。 [mcve]を投稿し、何が動作していないかを説明してください。 [help]にアクセスし、[ask]を読んでください。 –

答えて

0

外で働く場所として、のURLEncoderを使用します。

String myjson = "{\"username\":{\"name\":\"testusername\"},\"salary\":{\"sal\":\"56748\",\"bonus\":\"3221\"},\"category\":{\"cat\":\"CATA\"}}"; 
String myurl = "https://myserver.com/test/api/v1/parameter?data=" + URLEncoder.encode(myjson, "UTF-8"); 
関連する問題