Отправка (post) параметров из приложения dot net на заданный url-адрес веб-службы soap.
1)мое приложение-это приложение windows (RFID-приложение)
В настоящее время мы отправляем данные в oracle,их просят перейти с oracle на SAP
2) для этой цели им предоставляется веб-сервис SOAP, нам нужно отправить параметры через url-адрес, который я погуглил, и я нашел какой-то код, но он не срабатывает на этот url-адрес.
3) я пробовал с SOAP UI data send успешно, но использование данных приложения не срабатывает.
Пожалуйста, дайте решение для этого......
Что я уже пробовал:
частный недействительными методе button2_click(объект отправителя, EventArgs в электронной)
{
//Строки URL = "https://selfsolve.apple.com/wcResults.do";
//URL obj = новый URL (url);
//URLConnection кон = URL-адрес.содержащие вредоносные элементы();
//HttpsURLConnection con = (HttpsURLConnection)obj. openConnection();
//URL-адрес URL-адрес = новый URL-адрес("http://iltdpodev.itc.in:50000/dir/wsdl?p=ic/de7a99a9145f31eb931f8792ad1b7d51");
//HttpURLConnection urlConnection = (HttpURLConnection)url. openConnection();
ВАР URL-адрес = "http://iltdpodev.itc.in:50000/dir/wsdl?p=ic/de7a99a9145f31eb931f8792ad1b7d51";
ВАР действий = "http://sap.com/xi/WebService/soap1.1";
var soapEnvelopeXml = CreateSoapEnvelope();
var soapRequest = CreateSoapRequest(url, действие);
InsertSoapEnvelopeIntoSoapRequest(soapEnvelopeXml, soapRequest);
использование (var stringWriter = new StringWriter())
{
использование (var xmlWriter = XmlWriter.Создать(stringwriter не))
{
soapEnvelopeXml.Требуется написание(объекта XmlWriter);
класса XmlWriter.Промывать();
}
}
// начать асинхронный вызов веб-запроса.
var asyncResult = soapRequest.BeginGetResponse(null, null);
// приостановите этот поток до завершения вызова. Возможно, вы захотите
// сделайте здесь что-нибудь полезное, например обновите свой пользовательский интерфейс.
var success = asyncResult.AsyncWaitHandle.WaitOne(TimeSpan. FromSeconds(50));
//if (! success) return null;
// получить ответ от завершенного веб-запроса.
//using (var webResponse = soapRequest.Метода endgetresponse(asyncresult, к))
//{
// строки soapResult;
// var responseStream = webResponse.GetResponseStream();
// if (responseStream = = null)
// {
// return null;
// }
// using (var reader = new StreamReader(responseStream))
// {
// soapResult = reader. ReadToEnd();
// }
// возврат soapResult;
//}
}
частный статический HttpWebRequest CreateSoapRequest(string url, string action)
{
var webRequest = (HttpWebRequest)WebRequest.Создать (url);
веб-запрос.Headers. Add ("SOAPAction", action);
веб-запрос.ContentType = "text / xml;charset=\" utf-8\"";
веб-запрос.Принимаем = "текст/XML";
веб-запрос.Method = " POST";
А networkcredential учетных данных = новый а networkcredential("", "");
веб-запрос.Учетные данные = учетные данные;
веб-запрос.Сообщения keepalive = истина;
веб-запрос.UseDefaultCredentials = true;
вернуться в WebRequest;
}
частный статический XmlDocument CreateSoapEnvelope()
{
строки S1 = " &ЛТ;soapenv:конверт префиксом xmlns:soapenv="\" по адресу http:="" schemas.xmlsoap.org="" очень="" огибающей="" \""="" атрибутов xmlns:Фус="\" fusion_pp_rfid_i_pp3_001_rfidmarryingwithubc\""=""&ГТ; "
+ "<soapenv: заголовок & gt; "
+ "<soapenv:body> "
+ " &ЛТ;Фус:mt_rfid_data_sender&ГТ; "
+ " &ЛТ;rfid_data&ГТ; "
+ "<rfid_tag_no> 501 "
+ "<feeding_line_number> 502 "
+ "<step_number> 503 "
+ "<ubc_number> 504 "
+ "<статус & gt;505 "
+ " "
+ " "
+ " "
+ " ";
строка S2 = " &ЛТ;soapenv:конверт префиксом xmlns:soapenv="\" по адресу http:="" schemas.xmlsoap.org="" очень="" огибающей="" \""="" атрибутов xmlns:Фус="\" fusion_pp_rfid_i_pp3_001_rfidmarryingwithubc\""=""&ГТ; "
+ "<soapenv: заголовок & gt; "
+ "<soapenv:body> "
+ " &ЛТ;Фус:mt_rfid_data_sender&ГТ; "
+ " &ЛТ;rfid_data&ГТ; "
+ "<rfid_tag_no> 501 "
+ "<feeding_line_number> 502 "
+ "<step_number> 503 "
+ "<ubc_number> 504 "
+ "<статус & gt;505 "
+ " "
+ " "
+ " "
+ " ";
var soapEnvelope = новый XmlDocument();
soapEnvelope. LoadXml(s1); / / конверт SOAP для отправки
возвращение soapEnvelope;
}
частных статических недействительным InsertSoapEnvelopeIntoSoapRequest(объект XmlDocument soapEnvelopeXml, запросы WebRequest класса HttpWebRequest )
{
использование (Stream stream = webRequest. GetRequestStream())
{
soapEnvelopeXml.Сохранить(трансляция);
}
}