【问题标题】:Why does WebResponse from web page have trailing space?为什么来自网页的 WebResponse 有尾随空格?
【发布时间】: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


【解决方案1】:

尝试将您的 PHP 源更改为:

<?php echo 'OK';

这应该删除空间。任何以 PHP 代码结尾的 PHP 文件都不应该有结束 ?&gt;,因为它只会导致烦人的问题。

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 2010-12-17
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 2019-05-24
    相关资源
    最近更新 更多