2017-06-27 4 views
0
ein

Ich bin eine Webservice-URL ähnlich wie: http://ericdev35:7280/persons/persons/ und einen Benutzernamen und ein Kennwort bereitgestellt.Geben Sie eine Zeichenfolge zu einem erholsamen Webdienst in C#

Ich möchte einen Post-Aufruf an diesen Web-Service von WPF-Anwendung machen. für diese "fname = Abc & lname = xyz"

Wie kann ich in C# einen Anruf: Die Daten zum Service ist die erste einer Person im Format Name und Nachname gesendet werden? Hier ist der Code, dass ich versucht habe:

 HttpWebRequest httpWebRequest = (HttpWebRequest) WebRequest.Create("http://ericdev35:7280/persons/persons/"); 
     httpWebRequest.Method = "POST"; 
     httpWebRequest.ContentType = "application/json"; 
     httpWebRequest.Credentials = new NetworkCredential(username, password); 
     string data = "fname=Abc&lname=Xyz"; 
     StreamWriter writer = new StreamWriter(httpWebRequest.GetRequestStream()); 
     writer.Write(data); 
     writer.Close(); 

Das macht mir keine Fehler, aber ich kann nicht die Daten sehen, die ich geschrieben habe. Gibt es etwas, das korrigiert werden muss? Ist der Inhaltstyp korrekt?

+0

https://stackoverflow.com/a/4015346/588734 –

+1

Ihre Daten sind nicht in gültige Json-Format! "{" fname ":" Abc "," lname ":" Xyz "}" wäre gültig ... – RoJaIt

Antwort

0

Diese Methode veröffentlicht json. Danach erhält es die Antwort und Deserialisierung des Json-Objekts.

private static string PostJson<T1>(string p_url, string p_json, string p_method, out T1 p_target) 
{ 
    var httpWebRequest = (HttpWebRequest)WebRequest.Create(p_url); 
    httpWebRequest.UseDefaultCredentials = true; 
    httpWebRequest.ContentType = "application/json"; 
    httpWebRequest.Method = p_method; 

    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
    { 
     streamWriter.Write(p_json); 
     streamWriter.Flush(); 
     streamWriter.Close(); 
    } 
    HttpWebResponse httpResponse; 
    try 
    { 
     httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
    } 
    catch (WebException ex) 
    { 
     httpResponse = ex.Response as HttpWebResponse; 
    } 

    using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
    { 
     var a_result = streamReader.ReadToEnd(); 

     //If you dont need a Json object delete anything behind here 
     try 
     { 
      p_target = JsonConvert.DeserializeObject<T1>(a_result); 
     } 
     catch { p_target = default(T1); } 
     return a_result; 
    } 
} 
+0

Wie soll ich meine Daten als json weitergeben? Ist die folgende Aussage korrekt? string data = "fname = Abc & lname = Xyz"; –

+0

string data = "{\" fname \ ": \" Abc \ ", \" lname \ ": \" Xyz \ "}"; – RoJaIt

+0

Ich übergab es als: string data = "{fname:" + "\" + "Abc" + "" + ", lname:" + "+" Xyz "+" \ "}" ; Die Antwort, die ich bekomme, ist 403 Verboten Fehler –

Verwandte Themen