Использование Intraweb для связи с другим сайтом - PullRequest
2 голосов
/ 26 мая 2011

Delphi 5 Pro Intraweb 7

У меня есть приложение Intraweb, которое использует «унаследованную» внутреннюю часть (B-Tree Filer) с потомком TDataSet для обработки доступа к данным. С моей стороны все хорошо и прекрасно.

Но теперь у меня есть несколько внешних сайтов, запрашивающих доступ к моим данным. Я сделал простые сообщения формы HTML и получаю их как инструмент связи, чтобы справиться с интеграцией с другими сайтами, но один из запросов сейчас просит меня отправить «таблицу» данных обратно. Каждая строка таблицы представляет отдельную запись.

Как я могу сделать это с моей текущей настройкой? Буду ли я отправлять обратно с документом XML и позволить другому сайту обрабатывать «таблицу» на своем конце? Есть ли какой-нибудь набор данных (как в определении мира данных в VB или .Net), который я мог бы использовать в Delphi, и если да, то как мне отправить его обратно на сайт, выполняющий запрос?

Любые мысли и предложения будут с благодарностью.

Ответы [ 2 ]

0 голосов
/ 26 мая 2011

Во-первых, я хотел бы знать, что использует другая сторона (PHP, Java и т. Д.), И есть ли уже в списке вещей, которые они знают, как сделать, SOAP / XML, JSON / REST и т. Д.».Тогда я бы пошел с этим.

Вам может потребоваться предоставить для них либо серверную службу SOAP или JSON, либо какой-либо другой пользовательский документ (HTML / XML / JSON и т. Д.), В противном случае предоставьте им необработанные данные в формате, который они могут прочитать, и предоставитьим URL-адреса, которые им необходимо знать, чтобы получить эти данные, которые вы, очевидно, намереваетесь использовать для них, а не для общего доступа пользователей к вашему веб-сайту через браузер.

0 голосов
/ 26 мая 2011

HTTP POST (возвращение к другой стороне) - хорошая идея, использование асинхронной операции позволяет запускать сбор и преобразование данных вне HTTP-запроса.(См. Слайд 4 презентации " Dopplr: он сделан из сообщений " Мэтта Биддулфа) * ​​1005 *

Ваш сервер получит небольшой HTTP-запрос GET (что-то вроде /context/loaddata?table=TABLENAME&from=1000&records=100), сохраните этозапросите и немедленно верните ответ с простым OK.

Затем ваш сервер соберет и подготовит данные таблицы (в кодировке XML или JSON) и, наконец, отправит HTTP POST с этим документомна веб-сервер другой стороны.Если эта операция завершится неудачно, ее можно будет повторить, пока другой сервер не ответит OK.

Так что, если подготовка и преобразование данных занимает много времени, другой стороне не придется ждать (и, возможно, возникнет запростайм-аут), пока ваш сервер занят извлечением и преобразованием данных.

...