2

是这个吗?

我正在尝试转换$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 的内容类型,并且正文将包含一个 JSON 编码的字符串,其中包含一个或多个更改。

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

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

4

1 回答 1

2

编辑#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 行稍作更改。您也可以在第 2 行尝试 Request.Form 而不是 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 处理器肯定已经更新了

于 2013-03-16T16:35:03.177 回答