【发布时间】:2012-11-12 09:46:19
【问题描述】:
我在一个网站上写了一个PHP 页面来回复OK。在PHP 中,这已通过以下方式完成:
echo 'OK';
当我请求.NET 中的页面并将响应读入字符串时,结果字符串有一个尾随空格,所以它是'OK '。字符串的长度为 3 个字符。为什么会出现这种情况,我该如何解决?
.NET 代码是:
Private Function GetStrFromPostRequest(ByVal url As String, ByVal encoding As Text.Encoding, ByVal params As String) As String
Dim strWebResponse As String
Dim Request As HttpWebRequest = WebRequest.Create(url)
Request.Method = "POST"
Request.ContentType = "application/x-www-form-urlencoded"
Using writer As StreamWriter = New StreamWriter(Request.GetRequestStream(), encoding)
writer.Write(params)
End Using
Using Response As WebResponse = Request.GetResponse
Using reader As StreamReader = New StreamReader(Response.GetResponseStream(), encoding)
strWebResponse = reader.ReadToEnd
End Using
End Using
Return strWebResponse
End Function
【问题讨论】:
-
可能在
<?php之前或?>之后存在空格 -
具体来说,
?>之后的换行符是常见的罪魁祸首。您可以简单地从源文件中删除?>以对此进行免疫(即使缺少结束标记,PHP 也会很好地处理代码)。 -
?>后面有一个。这样做是不是有点傻? -
不,不傻,这在严格意义上是有道理的:记住 php 是一种嵌入式语言。它必须始终保持嵌入文本不变!
标签: php .net webrequest streamreader webresponse