C#从PHP POST响应中逐行读取


C# read line by line from PHP POST response

我想解析PHP响应中的每一行。我试过了:

PHP:

echo "Line 1'n";
echo "Line 2'n";
echo "Line 3'n";

C#

var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
client.addLine(responseString);

我得到每一行中的每一个回波,但我不能用它单独处理它。

当我做时

C#

var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadLine();
do
{
    client.addLine(responseString);
    responseString = new StreamReader(response.GetResponseStream()).ReadLine();
}   while (responseString != null);

我只得到第一行,接下来的每个循环都返回null。我怎样才能把每一行都分开?

可能是因为'n,windows使用'r'n作为行终止符。尝试用'r'n替换'n。不要为每次迭代创建流读取器

var reader = new StreamReader(response.GetResponseStream());
do
{
    client.addLine(reader.ReadLine());
}  while (!reader.EndOfStream);

假设您控制php输出,如果可能的话,使用JSON在php和C#之间进行通信可能会更容易,因为生成和解析JSON要简单得多。