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