供ESB调用的接口:
可以这样获得ESB的调用参数
public void workOrderDispatch(
[XmlElement(Namespace = "http://is.service.aaa.bbb.com/abstraction/atomic/ddd.is.ccc/schema")]
string version,
[XmlElement(Namespace = "http://is.service.aaa.bbb.com/abstraction/atomic/ddd.is.ccc/schema")]
string customerName,
[XmlElement(Namespace = "http://is.service.aaa.bbb.com/abstraction/atomic/ddd.is.ccc/schema")]
string documentType,
[XmlElement(Namespace = "http://is.service.aaa.bbb.com/abstraction/atomic/ddd.is.ccc/schema")]
string document,
[XmlElement(Namespace = "http://is.service.aaa.bbb.com/abstraction/atomic/ddd.is.ccc/schema")]
string mobile,
[XmlElement(Namespace = "http://is.service.aaa.bbb.com/abstraction/atomic/ddd.is.ccc/schema")]
string contactPhone,
[XmlElement(Namespace = "http://is.service.aaa.bbb.com/abstraction/atomic/ddd.is.ccc/schema")]
string description,
)
{
逻辑代码。。。。
}
发送给ESB报文,并接收返回信息:
#region 发送报文
public static string SendToESB(string requestDataXml)
{
Stream requestStream = null;
HttpWebRequest httpReq;
try
{
Uri requestUri = new Uri("http://esb的IP地址加端口号:2801");
httpReq = (HttpWebRequest)WebRequest.Create(requestUri);
httpReq.Method = "POST";
httpReq.ContentType = "text/plain";
byte[] bytes = Encoding.UTF8.GetBytes(requestDataXml);
httpReq.ContentLength = bytes.Length;
requestStream = httpReq.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Flush();
requestStream.Close();
HttpWebResponse response = null;
StreamReader reader = null;
response = (HttpWebResponse)httpReq.GetResponse();
var responseStream = response.GetResponseStream();
reader = new StreamReader(responseStream, Encoding.UTF8);
var s = reader.ReadToEnd();
return s;
}
catch (Exception ex)
{
return ex.ToString();
}
}
#endregion