相当于file_get_contents(“php:// input”);在经典的asp

时间:2013-03-15 19:12:40

标签: php asp-classic

这是吗?

我正在尝试将$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);

1 个答案:

答案 0 :(得分: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行有另一个变化。你也可以尝试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/

您在上面建议的代码或其中的变体可能很有效,我将尝试使用它。经典ASP本身在十多年内没有更新,但微软的XML处理器肯定已经更新