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

时间:2014-09-10 08:44:25

标签: c# php

我想从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。 我怎样才能分别获得每一行?

2 个答案:

答案 0 :(得分:1)

可能是因为\n,Windows使用\r\n作为行终止符。尝试用\n替换\r\n。并且不要为每次迭代创建流阅读器

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

}  while (!reader.EndOfStream);

答案 1 :(得分:1)

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