Security configuration for making external web service call.
SV Server Side:
Add the following line into the file: C:\Program Files\HP\HP Service Virtualization Server\Server\bin\HP.SV.StandaloneServer.exe.config and restart SV Server.
<!-- secure mode C# scripting -->
<add key="Simulator.Scripting.Sandbox" value="false"/>
If this line exists with true value, change it to false.
SV Designer Side:
AFAIK Nothing needed for the designer.
By using following code template you can make external web service call from your C# rule.
Since this code template uses System.Xml namespace you have to follow these steps before running following code.
using System; using System.Net; using System.IO; using System.Xml; using HP.SV.DotNetRuleApi; using HP.SV.CSharp; namespace HP.SV{ public class CSharpRule{ public static void Execute(HpsvRootObject hpsv){ string host = "<<<YourExternalHost>>>"; string xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?><XML>Your xml request goes here</XML>"; string url = "http://"+host+"/EndpointURL"; System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(url); byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(xml); request.Method = "POST"; request.ContentType = "text/xml;charset=utf-8"; request.ContentLength = requestBytes.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); HttpWebResponse response = request.GetResponse() as HttpWebResponse; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(response.GetResponseStream()); XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable); nsmgr.AddNamespace("ns", "You can add namespaces if exists"); string out_version = "1.0"; string out_returnCode = xmlDoc.SelectSingleNode("/XPATH/For/ReturnCode", nsmgr).InnerText; string out_detailCode = xmlDoc.SelectSingleNode("/XPATH/For/DetailCode", nsmgr).InnerText; string out_tid = xmlDoc.SelectSingleNode("/XPATH/For/TID", nsmgr).InnerText; } } } |
No comments:
Post a Comment