Вопрос : Как вы создаете ручной запрос МЫЛА к обслуживанию стержня в C#?

Я создал применение пульта образца вызывает стержень service TempConvert для того чтобы преобразовать температуры между Fahrenheit и Celsius.  Обслуживание стержня принимает значение температуры и преобразовывает его и возвращает преобразованное value.

When, котор я вызываю обслуживание стержня, я получает ошибку при слежении;
«дистанционный сервер возвратило ошибку: (400) Плохой запрос на System.Net.HttpWebRequest.
I am/>GetResponse ()» конечно почему я получаю эту ошибку.  Все предложения?  Вы в выдвижении для своевременного class= " underline " >

I response.

Please Note
TempConvert стержня > webservices/tempconvert.asmx
http://www.w3schools.com/ class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
система " class= " id= " codeSnippet652348
using;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;

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 = "" шнура;

            uriString = «http://www.w3schools.com/webservices/tempconvert.asmx»;

            переключите (выбор)
            {
                случай 1: Новообращенный Fahrenheit // к Celsius
                    soapAction = «http://tempuri.org/FahrenheitToCelsius»;
                    displayText = «Celsius»;
                    пролом;

                случай 2: Новообращенный Celsius // к Fahrenheit
                    soapAction = «http://tempuri.org/CelsiusToFahrenheit»;
                    displayText = «Fahrenheit»;
                    пролом;
            }

            попытка
            {
                HttpWebRequest httpRequest = (HttpWebRequest) WebRequest.Create (новое Uri (uriString));
                httpRequest.Method = «СТОЛБ»;
                httpRequest.ContentType = «текст/xml; charset=utf-8»;
                httpRequest.Headers.Add (String.Format («SOAPAction: \» {0} \ "", soapAction));

                байты байта [] = (valueToBeConverted) Encoding.UTF8.GetBytes;
                httpRequest.ContentLength = valueToBeConverted.Length;

                httpRequest.ReadWriteTimeout = 10;
                httpRequest.ProtocolVersion = HttpVersion.Version11;

                использование (requestStream потока = httpRequest.GetRequestStream ())
                {
                    requestStream.Write (байты, 0, байты. Длина);
                }

                using (реакция HttpWebResponse = (HttpWebResponse) httpRequest.GetResponse ())
                {
                    responseStream потока = response.GetResponseStream ();
                    responseStreamReader StreamReader = новое StreamReader (responseStream);
                    значение = responseStreamReader.ReadToEnd ();
                }

                returnValue = значение + displayText;
            }
            задвижка (исключение ex)
            {
                returnValue = «ошибка: » + ex.ToString ();
            }

            возвращенное returnValue;
        }
    }
}
class=

Ответ : Как вы создаете ручной запрос МЫЛА к обслуживанию стержня в C#?

Я получили, что это работал для меня для Celsius к Fahrenheit (ошибке с вариантом 1):

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
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;
        }
    }
}
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us