C# C HTTP GET请求返回隐藏字符
我正在尝试从web服务器获取一些数据。当我通过浏览器浏览时,我会看到如下响应:C# C HTTP GET请求返回隐藏字符,c#,.net,regex,httpwebresponse,streamreader,C#,.net,Regex,Httpwebresponse,Streamreader,我正在尝试从web服务器获取一些数据。当我通过浏览器浏览时,我会看到如下响应: [ { "x": "1" ,"y" : "2" ,"z" : "3" } ] 当我发送GET请求时,返回结果: [ {\n\"x\": \"1\"\n,\"y\" : \"2\"\n,\"z\" : \"3\"\n\n}\n]\n" 我使用的代码基本上是: // Create a request for the URL. WebRequest request = WebRequest.Create(fullUr
[ { "x": "1" ,"y" : "2" ,"z" : "3" } ]
当我发送GET请求时,返回结果:
[ {\n\"x\": \"1\"\n,\"y\" : \"2\"\n,\"z\" : \"3\"\n\n}\n]\n"
我使用的代码基本上是:
// 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();
是否有一种简单的方法可以在之前除去\n和\或必须对响应执行一些正则表达式/字符串操作
谢谢,
意志
可能是您在VisualStudio调试器中看到的。你不需要扔掉任何东西。此外,您还可以稍微简化代码,因为示例中所有未经处理的资源都可能泄漏非托管句柄:
using (var client = new WebClient())
{
string responseFromServer = client.DownloadString(fullUrl);
}
可能是您在VisualStudio调试器中看到的。你不需要扔掉任何东西。此外,您还可以稍微简化代码,因为示例中所有未经处理的资源都可能泄漏非托管句柄:
using (var client = new WebClient())
{
string responseFromServer = client.DownloadString(fullUrl);
}
引号前的“\”只是您将在调试器中看到的,它表示一个转义引号-没有问题,因为它仅用于显示目的,在执行字符串操作时不会作为字符出现 “\n”字符是一个新行字符,它实际上在那里。如果不希望它出现在字符串中,可以通过以下操作将其删除:
responseFromServer = responseFromServer.Replace("\n", string.Empty);
引号前的“\”只是您将在调试器中看到的,它表示一个转义引号-没有问题,因为它仅用于显示目的,在执行字符串操作时不会作为字符出现 “\n”字符是一个新行字符,它实际上在那里。如果不希望它出现在字符串中,可以通过以下操作将其删除:
responseFromServer = responseFromServer.Replace("\n", string.Empty);
这是IDE对字符串的表示,就像在代码中使用它时一样,其中
\n表示换行符,如果转义引号,则浏览器也会接收相同的字符串,但它会将换行符显示为空格:
这是IDE对字符串的表示,就像在代码中使用它时一样,其中
\n表示换行符,如果转义引号,则浏览器也会接收相同的字符串,但它会将换行符显示为空格: