Pergunta : Como você cria um pedido manual do SABÃO a um serviço de correia fotorreceptora em C#?

Eu criei uma aplicação do console da amostra que chamasse a correia fotorreceptora service do TempConvert para converter temperaturas entre Fahrenheit e Celsius.  O serviço de correia fotorreceptora toma um valor da temperatura e converte-o e retorna-o o value.

When que eu chamo o serviço de correia fotorreceptora, mim começ o seguinte erro;
“o usuário remoto retornou um erro: (400) Pedido mau System.Net.HttpWebRequest.
I am de/>GetResponse ()” não sure porque eu começ este erro.  Alguma sugestão?  Obrigado em um avanço para um class= oportuno " traço " >

I de response.

Please Note

TempConvert da correia fotorreceptora > o webservices/tempconvert.asmx
de http://www.w3schools.com/ class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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:
sistema >using notpretty " do class= " do id= " codeSnippet652348 do
           
class= do

Resposta : Como você cria um pedido manual do SABÃO a um serviço de correia fotorreceptora em C#?

Eu consegui este trabalhar para mim para o Celsius a Fahrenheit (erro com opção 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 o sistema;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Text;
using System.Xml.Linq;

namespace WebServiceCallConsoleApp
{
    programa da classe
    {
        principal vago da estática (args da corda [])
        {
            seleção da corda;
            a corda valueToBeConverted;
            convertedValue da corda;

            Console.Title = da “conversão temperatura”;

            Console.WriteLine (“conversão seleta”);
            Console.WriteLine (“-----------------");
            Console.WriteLine (“1) Fahrenheit a Celsius”);
            Console.WriteLine (“2) Celsius a Fahrenheit \ n”);
            seleção = Console.ReadLine ();
            Console.WriteLine ("");

            Console.WriteLine (“incorporar o valor para converter”);
            Console.WriteLine (“----------------------");
            valueToBeConverted = Console.ReadLine ();
            Console.WriteLine ("");

            convertedValue = ConvertValue (Int32.Parse (seleção), valueToBeConverted);

            Console.WriteLine (da “resultado conversão”);
            Console.WriteLine (“-----------------");
            Console.WriteLine (convertedValue);

            Aplicação da saída de //
            Console.WriteLine ("");
            Console.WriteLine (“pressionar toda a chave para retirar! ");
            Console.ReadLine ();
        }

        corda de estática confidencial ConvertValue (seleção, corda do int valueToBeConverted)
        {
            valor de corda;
            corda que uriString;
            returnValue da corda;
            soapAction = "" da corda;
            displayText = "" da corda;
            resultName = "" da corda;

            uriString = “http://www.w3schools.com/webservices/tempconvert.asmx”;

            comutar (seleção)
            {
                caso 1: Converso Fahrenheit de // a Celsius
                    soapAction = “http://tempuri.org/FahrenheitToCelsius”;
                    displayText = “Celsius”;
                    resultName = “FahrenheitToCelsiusResult”;
                    ruptura;

                caso 2: Converso Celsius de // a Fahrenheit
                    soapAction = “http://tempuri.org/CelsiusToFahrenheit”;
                    displayText = “Fahrenheit”;
                    resultName = “CelsiusToFahrenheitResult”;
                    ruptura;
            }

            tentativa
            {
                HttpWebRequest o mais httpRequest = (HttpWebRequest) WebRequest.Create (Uri novo (uriString));
                httpRequest.Method = “BORNE”;
                httpRequest.ContentType = “texto/xml; charset=utf-8”;
                httpRequest.Headers.Add (String.Format (“SOAPAction: \” {0} \ "", soapAction));

                Córrego do córrego = Assembly.GetExecutingAssembly () .GetManifestResourceStream (“ConsoleApplication1.SoapAction.xml”);

                utilização (leitor de StreamReader = StreamReader novo (córrego))
                {
                    soapActionXml da corda = reader.ReadToEnd (). Substituir (“corda”, valueToBeConverted);

                    amortecedor do byte [] = Encoding.UTF8.GetBytes (soapActionXml);
                    httpRequest.ContentLength = amortecedor. Comprimento;

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

                    requestStream do córrego = httpRequest.GetRequestStream ();
                    requestStream.Write (amortecedor, 0, amortecedor. Comprimento);

                    Resposta de HttpWebResponse = (HttpWebResponse) httpRequest.GetResponse ();

                    responseStream do córrego = response.GetResponseStream ();
                    responseStreamReader de StreamReader = StreamReader novo (responseStream);
                    valor = responseStreamReader.ReadToEnd ();

                    Original de XDocument = XDocument.Parse (valor);

                    amarrar o elementName = “{http://tempuri.org/}” + resultName;
                    returnValue = original. Descendentes (elementName) .FirstOrDefault (). Valor;
                }
            }
            prendedor (exceção ex)
            {
                returnValue = “erro: ” + ex.ToString ();
            }

            returnValue do retorno;
        }
    }
}
Outras soluções  
 
programming4us programming4us