VB.NETからロボットをREST実行する方法

フォローする

概要

VB.NETからロボットをRESTで実行する方法をコード付きで説明します。
※VB.NETのコード内容についてはサポート対象外です。

作業手順

1.MCで「リポジトリ」タブ>「ロボット」タブを開く。

2.対象ロボットの「REST」をクリックする。

4192_01.png

3.「サービスの例」ダイアログの「REST URL」項目で、任意のHTTPメソッドを選択する。
今回はインプットパラメーターがあるので「POST」を選択します。

4192_02.png


※「フォーマット」項目を変更することで、リクエスト/レスポンスボディのフォーマットを設定できます。

4192_03.png


4.コピーした「REST URL」、「リクエストボディ」をコードに組み込む

以下は、ボタン押下でロボットをREST実行し、テキストエリアにロボットの戻り値を表示するサンプルコードです。ロボットのインプットに"10000000"を渡しています。


<例>

Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Xml

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        'REST URL
        Dim REST_URL = "http://localhost:50080/rest/run/Default project/Sample.robot"

        'リクエストボディ
        Dim REST_Request =
            "{
            ""parameters"" : [ {
            ""variableName"" : ""Parameter"",
            ""attribute"" : [ {
                ""type"" : ""text"",
                ""name"" : ""Input"",
                ""value"" : ""10000000""
                    } ]
                } ]
            }"
        Dim REST_Response = ""
        Dim JsonSring = REST_Request
        Dim myUri As New Uri(REST_URL)
        Dim data = Encoding.Default.GetBytes(JsonSring)
        REST_Response = Send_REST_Request(myUri, data, "application/json", "POST")
        Dim Xml As XmlDocument
        Xml = New XmlDocument
        Xml.LoadXml(REST_Response)
        Dim nodeList As XmlNodeList = Xml.GetElementsByTagName("attribute")
        For Each node As XmlElement In nodeList
            If node.Attributes(1).InnerText = "Output" Then
                TextBox1.Text = node.InnerText
            End If
        Next
    End Sub

    Private Function Send_REST_Request(uri As Uri, jsonDataBytes As Byte(), contentType As String, method As String) As String

        Dim req As WebRequest = WebRequest.Create(uri)
        req.ContentType = contentType
        req.Method = method
        req.ContentLength = jsonDataBytes.Length
        Dim stream = req.GetRequestStream()
        stream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
        stream.Close()
        Dim response = req.GetResponse().GetResponseStream()
        Dim reader As New StreamReader(response)
        Dim res = reader.ReadToEnd()
        reader.Close()
        response.Close()
        Return res

    End Function

End Class

 

参考

 RESTリクエストでロボットを実行した時のMC挙動

区分 確認Ver
手順 10.3.0.7