JavaでロボットをRest実行する方法

フォローする

概要

JavaでロボットをRest実行する方法のサンプルコードを記載します。
以下に記載するのは、Java標準のライブラリを使用し、Httpリクエストでロボットを実行するサンプルになります。

使用例

サンプルコード
・POST通信
・インプット/アウトプットの形式はJSON

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;


public class Sample {

    public static void main(String args[]){

        String _robotUrl = "http://localhost:50070/rest/run/Default%20project/Rest.robot";
        String _inputParameter = "{\"parameters\":[{\"variableName\":\"input\",\"attribute\":[{\"type\":\"text\",\"name\":\"id\",\"value\":\"input text\"},{\"type\":\"text\",\"name\":\"name\",\"value\":\"input text\"}]}]}";
        String _userName = "admin";
        String _passWord = "admin";

        HttpURLConnection _con = null;
        StringBuilder _result = new StringBuilder();

        try {

            URL _url = new URL(_robotUrl);
            _con = (HttpURLConnection) _url.openConnection();
            _con.setRequestMethod("POST");
            _con.setDoOutput(true);
            // 送信するリクエストデータの形式をJSON形式に指定
            _con.setRequestProperty("Content-Type", "application/JSON; charset=utf-8");
            // レスポンスデータをJSON形式で受け取る
            _con.setRequestProperty("Accept", "application/JSON;");
            // MCの認証情報
            _con.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString((_userName+":"+_passWord).getBytes()));
            OutputStreamWriter _out = new OutputStreamWriter(_con.getOutputStream());
            _out.write(_inputParameter);
            _out.close();
            _con.connect();

            if (_con.getResponseCode() == HttpURLConnection.HTTP_OK) {
                InputStream _in = _con.getInputStream();
                String _encoding = _con.getContentEncoding();
                if(null == _encoding){
                    _encoding = "UTF-8";
                }
                InputStreamReader _inReader = new InputStreamReader(_in, _encoding);
                BufferedReader _bufReader = new BufferedReader(_inReader);
                String _line = null;
                // レスポンスデータ取得
                while((_line = _bufReader.readLine()) != null) {
                    _result.append(_line);
                }
                _bufReader.close();
                _inReader.close();
                _in.close();
            }

        }catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (_con != null) {
                _con.disconnect();
            }
        }
        System.out.println("result=" + _result.toString());
    }
}

注意事項

こちらはあくまでも一例であり、この方法を推奨するものではありません。
また、お客様の判断においてご利用・参考頂き、サンプルコードに関する問い合わせは対応しておりません。

前提

Java8で動作確認をしております。

区分 確認Ver
逆引き 10.7.0.4