Подключение к Tibco с использованием Generated Soap WSDL - PullRequest
0 голосов
/ 01 мая 2019

У меня есть WSDL, сгенерированный из Tibco, WSDL можно импортировать и запустить под SoapUI, и я могу без проблем подключиться к HTTPS даже без сертификата, однако попытался подключиться к той же конечной точке с помощью c #. Я не могу подключиться с помощью следующего кода:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.KeepAlive = true;
req.Accept = "gzip,deflate";
req.Headers.Add("SOAPAction", soapActionHeader);
req.ContentType = "text/xml;charset=UTF-8";
req.Method = "POST";
req.Timeout = requestTimeOut;
#endregion

#region Adding XML body to request
Stream strm = null;
using (var streamWriter = new StreamWriter(req.GetRequestStream()))
{
    streamWriter.Write(xmlSOAPTemplate);
    streamWriter.Flush();
    streamWriter.Close();
}
#endregion

#region HTTP RESPONSE
string resultValue = string.Empty;
WebResponse resp = req.GetResponse();
strm = resp.GetResponseStream();
StreamReader streamReader = new StreamReader(strm);
string res = streamReader.ReadToEnd();
ExceptionHandler.WriteLog($"{url}:Response:{res}", MethodBase.GetCurrentMethod().Name);
XmlSerializer serializer = new XmlSerializer(typeof(T));
result = (T)serializer.Deserialize(strm);

Итак, как мы можем решить эту проблему?

1 Ответ

0 голосов
/ 03 мая 2019

какая ошибка вы получаете?

Кажется, ваш код манипулирует чистым HTTP API, в то время как вы должны использовать библиотеку, которая вызывает SOAP через HTTP.

Я не C #программист, но я погуглил тему и нашел этот пример (см. шаг 7): https://www.c -sharpcorner.com / UploadFile / 88b6e5 / как позвонить через веб-сервис в андроиде используя мыло /

SOAP может быть довольно сложным (особенно если вы используете TIBCO Business Works для его создания с проектом Entreprise), вызов его с помощью HTTP API будет сложным.

...