Question : Comment créez-vous une demande manuelle de SAVON à un service de Web dans C# ?

J'ai créé une application de console témoin qui appelle le Web service de TempConvert pour convertir les températures entre Fahrenheit et Celsius.  Le service de Web prend une valeur de la température et la convertit et renvoie le value.

When que j'appelle le service de Web, j'obtiennent l'erreur suivante ;
« le serveur à distance a renvoyé une erreur : (400) Mauvaise demande System.Net.HttpWebRequest.
I AM de/>GetResponse () » pas sure pourquoi j'obtiens cette erreur.  Des suggestions ?  Merci dans une avance d'un class= opportun le " underline " >

I de response.

Please Note

TempConvert de Web URI le webservices/tempconvert.asmx
de http://www.w3schools.com/ class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
système >using " de l'id= " codeSnippet652348 de
           
class= de

Réponse : Comment créez-vous une demande manuelle de SAVON à un service de Web dans C# ?

J'ai obtenu ceci pour fonctionner pour moi pour le Celsius à Fahrenheit (erreur avec option 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 le système ;
using System.IO ;
using System.Linq ;
using System.Net ;
using System.Reflection ;
using System.Text ;
using System.Xml.Linq ;

namespace WebServiceCallConsoleApp
{
    programme de classe
    {
        principal vide de charge statique (args de corde [])
        {
            choix de corde ;
            la corde valueToBeConverted ;
            convertedValue de corde ;

            Console.Title = « conversion de la température » ;

            Console.WriteLine (« conversion choisie ») ;
            Console.WriteLine (« -----------------") ;
            Console.WriteLine (« 1) Fahrenheit à Celsius ») ;
            Console.WriteLine (« 2) Celsius à Fahrenheit \ n ») ;
            choix = Console.ReadLine () ;
            Console.WriteLine ("") ;

            Console.WriteLine (« écrire la valeur pour convertir ») ;
            Console.WriteLine (« ----------------------") ;
            valueToBeConverted = Console.ReadLine () ;
            Console.WriteLine ("") ;

            convertedValue = ConvertValue (Int32.Parse (choix), valueToBeConverted) ;

            Console.WriteLine (« résultat de conversion ») ;
            Console.WriteLine (« -----------------") ;
            Console.WriteLine (convertedValue) ;

            Application de sortie de //
            Console.WriteLine ("") ;
            Console.WriteLine (« appuyer sur n'importe quelle touche pour sortir ! ") ;
            Console.ReadLine () ;
        }

        corde statique privée ConvertValue (choix, corde d'international valueToBeConverted)
        {
            valeur de corde ;
            corde uriString ;
            returnValue de corde ;
            soapAction = "" de corde ;
            displayText = "" de corde ;
            resultName = "" de corde ;

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

            commuter (choix)
            {
                affaire 1 : Converti Fahrenheit de // à Celsius
                    soapAction = « http://tempuri.org/FahrenheitToCelsius » ;
                    displayText = « Celsius » ;
                    resultName = « FahrenheitToCelsiusResult » ;
                    coupure ;

                affaire 2 : Converti Celsius de // à Fahrenheit
                    soapAction = « http://tempuri.org/CelsiusToFahrenheit » ;
                    displayText = « Fahrenheit » ;
                    resultName = « CelsiusToFahrenheitResult » ;
                    coupure ;
            }

            essai
            {
                HttpWebRequest httpRequest = (HttpWebRequest) WebRequest.Create (nouvel Uri (uriString));
                httpRequest.Method = « POTEAU » ;
                httpRequest.ContentType = « texte/xml ; charset=utf-8 » ;
                httpRequest.Headers.Add (String.Format (« SOAPAction : \ » {0} \ "", soapAction));

                Jet de jet = Assembly.GetExecutingAssembly () .GetManifestResourceStream (« ConsoleApplication1.SoapAction.xml ») ;

                utilisation (lecteur de StreamReader = nouveau StreamReader (jet))
                {
                    soapActionXml de corde = reader.ReadToEnd (). Remplacer (« corde », valueToBeConverted) ;

                    amortisseur de byte [] = Encoding.UTF8.GetBytes (soapActionXml) ;
                    httpRequest.ContentLength = amortisseur. Longueur ;

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

                    requestStream de jet = httpRequest.GetRequestStream () ;
                    requestStream.Write (amortisseur, 0, amortisseur. Longueur) ;

                    Réponse de HttpWebResponse = (HttpWebResponse) httpRequest.GetResponse () ;

                    responseStream de jet = response.GetResponseStream () ;
                    responseStreamReader de StreamReader = nouveau StreamReader (responseStream) ;
                    valeur = responseStreamReader.ReadToEnd () ;

                    Document de XDocument = XDocument.Parse (valeur) ;

                    ficeler l'elementName = « {http://tempuri.org/} » + resultName ;
                    returnValue = document. Descendants (elementName) .FirstOrDefault (). Valeur ;
                }
            }
            crochet (exception ex)
            {
                returnValue = « erreur :  » + ex.ToString () ;
            }

            returnValue de retour ;
        }
    }
}
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us