using система;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Text;
using System.Xml.Linq;
namespace WebServiceCallConsoleApp
{
программа типа
{
главным образом static пустое (args шнура [])
{
выбор шнура;
шнур valueToBeConverted;
convertedValue шнура;
Console.Title = «преобразование температуры»;
Console.WriteLine («отборное преобразование»);
Console.WriteLine («-----------------");
Console.WriteLine («1) Fahrenheit к Celsius»);
Console.WriteLine («2) Celsius к Fahrenheit \ n»);
выбор = Console.ReadLine ();
Console.WriteLine ("");
Console.WriteLine («впишите значение для того чтобы преобразовать»);
Console.WriteLine («----------------------");
valueToBeConverted = Console.ReadLine ();
Console.WriteLine ("");
convertedValue = ConvertValue (valueToBeConverted Int32.Parse (выбор),);
Console.WriteLine («результат преобразования»);
Console.WriteLine («-----------------");
Console.WriteLine (convertedValue);
Применение выхода //
Console.WriteLine ("");
Console.WriteLine («отожмите любой ключа для того чтобы выйти! ");
Console.ReadLine ();
}
приватный статический шнур ConvertValue (valueToBeConverted выбор, шнур int)
{
значение шнура;
шнур uriString;
returnValue шнура;
soapAction = "" шнура;
displayText = "" шнура;
resultName = "" шнура;
uriString = «http://www.w3schools.com/webservices/tempconvert.asmx»;
переключите (выбор)
{
случай 1: Новообращенный Fahrenheit // к Celsius
soapAction = «http://tempuri.org/FahrenheitToCelsius»;
displayText = «Celsius»;
resultName = «FahrenheitToCelsiusResult»;
пролом;
случай 2: Новообращенный Celsius // к Fahrenheit
soapAction = «http://tempuri.org/CelsiusToFahrenheit»;
displayText = «Fahrenheit»;
resultName = «CelsiusToFahrenheitResult»;
пролом;
}
попытка
{
HttpWebRequest httpRequest = (HttpWebRequest) WebRequest.Create (новое Uri (uriString));
httpRequest.Method = «СТОЛБ»;
httpRequest.ContentType = «текст/xml; charset=utf-8»;
httpRequest.Headers.Add (String.Format («SOAPAction: \» {0} \ "", soapAction));
Поток потока = Assembly.GetExecutingAssembly () .GetManifestResourceStream («ConsoleApplication1.SoapAction.xml»);
использование (читатель StreamReader = новое StreamReader (поток))
{
soapActionXml шнура = reader.ReadToEnd (). Замените («valueToBeConverted шнур»,);
буфер байта [] = Encoding.UTF8.GetBytes (soapActionXml);
httpRequest.ContentLength = буфер. Длина;
httpRequest.ReadWriteTimeout = 10;
httpRequest.ProtocolVersion = HttpVersion.Version11;
requestStream потока = httpRequest.GetRequestStream ();
requestStream.Write (буфер, 0, буфер. Длина);
Реакция HttpWebResponse = (HttpWebResponse) httpRequest.GetResponse ();
responseStream потока = response.GetResponseStream ();
responseStreamReader StreamReader = новое StreamReader (responseStream);
значение = responseStreamReader.ReadToEnd ();
Документ XDocument = XDocument.Parse (значение);
зашнуруйте elementName = «{http://tempuri.org/}» + resultName;
returnValue = документ. Выходцы (elementName) .FirstOrDefault (). Значение;
}
}
задвижка (исключение ex)
{
returnValue = «ошибка: » + ex.ToString ();
}
возвращенное returnValue;
}
}
}
|