概要
VB.NETからロボットをRESTで実行する方法をコード付きで説明します。
※VB.NETのコード内容についてはサポート対象外です。
作業手順
1.MCで「リポジトリ」タブ>「ロボット」タブを開く。
2.対象ロボットの「REST」をクリックする。
3.「サービスの例」ダイアログの「REST URL」項目で、任意のHTTPメソッドを選択する。
今回はインプットパラメーターがあるので「POST」を選択します。
※「フォーマット」項目を変更することで、リクエスト/レスポンスボディのフォーマットを設定できます。
4.コピーした「REST URL」、「リクエストボディ」をコードに組み込む
以下は、ボタン押下でロボットをREST実行し、テキストエリアにロボットの戻り値を表示するサンプルコードです。ロボットのインプットに"10000000"を渡しています。
<例>
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Xml
Public Class Form1Private 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
参考
区分 | 確認Ver |
手順 | 10.3.0.7 |