2010-11-24 13 views
1

Ich versuche, einige Daten von einem Webserver zu bekommen. Wenn ich über einen Browser gehen sehe ich eine Antwort wie:C# HTTP GET-Anfrage, die versteckte Zeichen zurückgibt

[ { "x": "1" ,"y" : "2" ,"z" : "3" } ] 

Wenn ich eine GET-Anfrage senden kommt das Ergebnis zurück:

[ {\n\"x\": \"1\"\n,\"y\" : \"2\"\n,\"z\" : \"3\"\n\n}\n]\n" 

Der Code ich verwende ist im Grunde:

// Create a request for the URL. 
WebRequest request = WebRequest.Create(fullUrl); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
// Get the stream containing content returned by the server. 
Stream dataStream = response.GetResponseStream(); 
// Open the stream using a StreamReader for easy access. 
StreamReader reader = new StreamReader(dataStream); 
// Read the content. 
string responseFromServer = reader.ReadToEnd(); 

gibt es eine einfache Art und Weise des \ n und \ vor dem ", um loszuwerden, oder muss ich auf die Antwort einige regex/String-Manipulation tun?

Danke, Will

Antwort

1

Die ‚\‘ vor den Anführungszeichen ist einfach das, was Sie in den Debugger und stellt einen entflohenen Zitat sehen Markierung - kein Problem, da es nur für Anzeigezwecke ist und nicht als Zeichen vorhanden ist, wenn Zeichenfolgenmanipulationen durchgeführt werden.

Das '\ n' Zeichen ist ein Zeilenumbruch Zeichen und das ist tatsächlich da. Wenn Sie nicht in der Zeichenfolge möchten, können Sie sie mit folgendem entfernen:

responseFromServer = responseFromServer.Replace("\n", string.Empty); 
3
[ {\n\"x\": \"1\"\n,\"y\" : \"2\"\n,\"z\" : \"3\"\n\n}\n]\n" 

ist wahrscheinlich das, was Sie in Visual Studio-Debugger zu sehen. Sie müssen nichts loswerden. Auch könnten Sie Ihren Code ein wenig, weil all diese undisposed Ressourcen in Ihrer Probe vereinfachen könnte unmanaged Griffe Leck:

using (var client = new WebClient()) 
{ 
    string responseFromServer = client.DownloadString(fullUrl); 
} 
1
[ {\n\"x\": \"1\"\n,\"y\" : \"2\"\n,\"z\" : \"3\"\n\n}\n]\n" 

Dies ist die Vorlage der Zeichenfolge von Ihrem IDE entkommen, wie Sie es, während es in Ihrem Code verwenden, wo \ n Stellt einen Zeilenumbruch dar und \ "wenn ein Anführungszeichen entfernt wurde, erhält der Browser auch die gleiche Zeichenfolge, aber er zeigt Newlines als Leerzeichen :)