【问题标题】:equivalent of file_get_contents("php://input"); in classic asp相当于 file_get_contents("php://input");在经典的 asp
【发布时间】:2013-03-15 19:12:40
【问题描述】:

是这个吗?

我正在尝试将 $data = file_get_contents("php://input"); 转换为经典的 asp...

    Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0") 
    xmlhttp.open "GET", php://input, false 
    xmlhttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
    xmlhttp.send
    TOKEN = xmlhttp.responseText    

编辑:回答约翰的问题...

实时更新

订阅成功后,Facebook 将继续调用 每次发生更改时您的端点(对所选字段 或连接)。对于每次更新,它都会发出一个 HTTP POST 请求。

请求的内容类型为 application/json 和 body 将包含一个 JSON 编码的字符串,其中包含一个或多个更改。

PHP 开发人员注意事项:在 PHP 中,要获取您将使用的编码数据 以下代码:

$data = file_get_contents("php://input"); $json = json_decode($data);

【问题讨论】:

  • 我会将其重新定义为“如何阅读经典 asp 中的原始请求正文”。与 PHP 无关。
  • 是的,您发布的代码应该可以工作。它出什么问题了?你得到什么错误?

标签: php asp-classic


【解决方案1】:

编辑#2

这是基于您的 Facebook 信息的有根据的猜测 - 试试吧

Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0") 
xmlhttp.open "GET", Request, false 
xmlhttp.setRequestHeader "Content-type", "application/json"
xmlhttp.send
TOKEN = xmlhttp.responseText

基本上这是您最初的想法,在第 2 行和第 3 行稍作更改。您也可以尝试 Request.Form 而不是第 2 行中的 Request,因为脚本正在接收 POST 数据

编辑 - 是的,看起来您的代码可以工作,只需稍作改动。您的网址需要放在双引号内 - 即

xmlhttp.open "GET", "php://input", false

感谢您的提问。我今天学到了一些东西。我会把原来的答案留作背景阅读

你能告诉我更多关于你想要实现的目标吗?看起来您想要获取外部 URL 的内容,然后在您的 ASP 页面中使用它。只要您的外部 URL 的输出是有效的 XML,您当然可以使用 XML 对象。代码如下所示。

set xml = Server.CreateObject("Msxml2.DomDocument")
xml.setProperty "ServerHTTPRequest", true
xml.async = false
xml.validateOnParse = false
xml.load("http://yoururl")

然后你有一个 xml 对象,这里只是称为“xml”,你可以根据需要使用它。例如,如果您只是希望它按原样出现在页面中,您可以添加

Response.write xml

如果您的外部 URL 输出不是有效的 XML,那么我认为 Classic ASP 自己无法做到这一点,您可能需要在您的服务器上安装第三方组件,例如 AspTear

http://www.alphasierrapapa.com/ComponentCenter/AspTear/

您在上面建议的代码或其变体可能会很好用,我将对其进行试验。 Classic ASP 本身已经十多年没有更新了,但微软的 XML 处理器肯定已经更新了

【讨论】:

  • 约翰,非常感谢您的研究和信息。 Facebook 正在向我发送具有 JSON 编码字符串的 HTTP POST 请求,我想将该数据插入数据库中。
  • 另外,我设法用tot_bytes = Request.TotalBytes 计算了字符串。所以我可以得到它的二进制格式,但我找不到将它转换成字符串的方法。
  • 好的,在您的示例中,您创建了一个名为“TOKEN”的对象,它对应于“$data”。您需要编写自己的 json_decode 函数,(或谷歌搜索其他人编写的函数)
  • 在经典 ASP 中转换为字符串的常用方法是 Cstr(yourobjectname)
  • 约翰,问题是我的例子不正确。我不是从 Facebook 请求数据。当我的一位用户更新他们的信息时,它会向我发布数据。
猜你喜欢
  • 2011-08-27
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 2016-06-02
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多