2013-03-15 2 views
2

Это правда?эквивалент file_get_contents ("php: // input"); в классическом asp

Я пытаюсь преобразовать, $data = file_get_contents("php://input"); к классическому осины ...

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.

Запрос будет иметь тип контента приложения/json, а тело будет содержать строку в кодировке JSON, содержащую одно или несколько изменений.

Примечание для разработчиков PHP: В PHP, чтобы получить кодированные данные вы будете использовать следующий код:

$ данных = file_get_contents ("PHP: // ввод"); $ json = json_decode ($ data);

+0

Я бы это перефразировал как «как я могу прочитать тело необработанного запроса в классическом asp». Ничего общего с PHP. – Wrikken

+0

Да, код, который вы опубликовали, должен работать. Что с этим не так? Какую ошибку вы получите? –

ответ

2

Edit # 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, а не Request в строке 2, поскольку скрипт получает POST-данные

Редактировать - да, похоже, ваш код будет работать с одним незначительным изменением. Ваш URL должен войти в двойные кавычки, то есть

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

Спасибо за вопрос. Сегодня я чему-то научился. Я оставлю свой первоначальный ответ в качестве фонового изображения

Не могли бы вы рассказать мне немного больше о том, чего вы пытаетесь достичь. Похоже, вы хотите получить содержимое внешнего URL-адреса, а затем использовать его на своей странице ASP. Вы можете, конечно, использовать объект XML при условии, что вывод вашего внешнего URL-адреса является допустимым 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, то я не думаю, что классический ASP не может сделать это самостоятельно, вы, возможно, потребуется установить компонент третьей стороны на сервере, например, AspTear

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

код, вы предлагаете выше, или вариации на нем, может хорошо работать, я буду экспериментировать с ним.Классический ASP сам по себе не обновлялся уже более десятилетия, но процессор XML от Microsoft, безусловно, был обновлен

+0

Джон, большое спасибо за ваши исследования и сообщения. Facebook отправляет мне HTTP-запрос POST с кодировкой JSON, и я хочу, чтобы эти данные были вставлены в базу данных. – Efe

+0

Пожалуйста, проверьте оригинальное сообщение. Я отредактировал его для вас. – Efe

+0

Кроме того, мне удалось подсчитать строку с помощью 'tot_bytes = Request.TotalBytes'. Поэтому я могу получить его в двоичном формате, но я не смог найти способ его преобразования в строку. – Efe

Смежные вопросы