2017-08-20 10 views
-1

HTTP接続に別のクラスを使用してHTTP接続を非表示にし、このコードを減らしたいと考えました。誰でもこのことを手伝ってもらえますか?Restapi Javaコードを使用して呼び出し、別のコードで接続を書き込む必要がある

public class ExportGroups { 
    public static void main(String[] args) { 
     try { 
      String username = "username"; 
      String password = "[email protected]"; 
      String userPassword = username + ":" + password; 
      String encoding = new sun.misc.BASE64Encoder().encode(userPassword.getBytes()); 

      URL url = new URL("https://AgilePointServer/Extension/ExportGroups"); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.setDoOutput(true); 
      conn.setRequestProperty("Authorization", "Basic " + encoding); 
      conn.setRequestMethod("POST"); 
      conn.setRequestProperty("Content-Type", "application/json"); 
      String input = "{\"groupNames\": [\"Accounts Payable\"]}"; 
      OutputStream os = conn.getOutputStream(); 
      os.write(input.getBytes()); 
      os.flush(); 
      BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); 

      String output; 
      System.out.println("Output from Server .... \n"); 
      while ((output = br.readLine()) != null) { 
       System.out.println(output); 
      } 
      conn.disconnect(); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

コードの問題は何ですか...? – jackarms

+0

あなたの*具体的な質問は何ですか? StackOverflowの概要と詳細については、[ツアー]と[ヘルプ]をお読みください。 –

+0

私はコードを最適化したいと思いました。私のコードは別のプログラムから呼び出されるべきhttp接続を隠すべきです。私はこれらの接続を一つのクラスでラップし、メソッドを使って呼び出したいと思った。 – Mounika

答えて

0

おそらくあなたは、接続の初期化を扱う「のConnectionFactory」という名前のクラスをしたいです。引数としてusername、password、URLを持つメソッド "createConnection"を持つことができ、HttpURLConnectionを初期化してから接続を返します。接続を作成する場合は、

HttpURLConnection connection = ConnectionFactory.createConnection(username, password, url); 
+0

ええ、私は言ったようにしようとしましたが、いくつかの機能が欠けています。基本的に私はJavaに新しい、それは苦労しています。 – Mounika

+0

公共の文字列exportgroupsを(){ 文字列のURL = "「https://でAgilePointServer /拡張/ exportgroupsを ""; JSONObject POSTDATA =新しいJSONObject(); \t \t \t \t postData.put( "groupNames"、「GROUPNAME 「); HTTPOperations OPS =新しいHTTPOperations(ドメイン、this.userName、パスワード、userPassword属性); リターンops.POSTMethod(URL、postData.toString());} } – Mounika

0

を使用してください。Retrofitを使用することをお勧めします。 インターフェイスを宣言して、それを実装するだけで済みます。 Retrofitは、すぐに使用できるように多くのことを処理します。

例はhereです。

関連する問題