2010-01-14 24 views
3

Je suis en train de construire un serveur DataSnap qui fonctionne comme un serveur WebDAV et j'essaie de lire les en-têtes de requêtes lors de l'utilisation d'un DSHTTPService puis modifiez les en-têtes de réponse.Comment puis-je accéder/modifier les en-têtes de requêtes/réponses dans un Delphi 2010 DataSnap Server

Quelqu'un peut-il me diriger dans la bonne direction? J'ai remarqué que Trace TDSRequest et TDSResponse sont des ancêtres de TDSRequestIndy et TDSResponseIndy et que ces composants ont accès aux en-têtes, mais je ne suis pas entièrement sûr de savoir comment passer d'un TDSRequest à TDSRequestIndy.

Je ne pensais pas non plus que la Trace serait le moyen le plus propre d'accéder à la requête et à la réponse, mais c'est la seule façon que j'ai trouvée jusqu'ici.

La raison pour essayer de le faire avec DataSnap et pas simplement Indy est que je cherche à utiliser DataSnap pour d'autres méthodes distantes.

+2

Bonne question, il pourrait également être intéressant d'avoir accès aux cookies. –

Répondre

1

Peut-être que vous devriez envisager d'utiliser TidHTTPServer et créer un serveur indy qui a de nombreux événements et méthodes, plutôt que de partir DSHTTPService, y compris OnBeforeBind, OnAfterBind, OnHeadersAvailable ... où vous avez accès aux en-têtes

+0

Merci pour la réponse après une si longue période sans réponse. Malheureusement, je préférerais n'utiliser qu'un seul port sur le serveur et souhaiterais combiner les parties DataSnap et WebDAV du serveur. J'ai depuis trouvé que je peux réimplémenter le TDSHTTPServerIndy qui est normalement privé, qui me donne alors l'accès à la pleine demande et aux objets de réponse. – GoldenTao