home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _3c8272877bad8c4645bbb6d5095b501b < prev    next >
Text File  |  2000-03-23  |  5KB  |  121 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>SOAP::Transport::HTTP::Server - Server side HTTP support for SOAP/Perl</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> SOAP::Transport::HTTP::Server - Server side HTTP support for SOAP/Perl</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <UL>
  26.  
  27.         <LI><A HREF="#handle_request(headerarray, body, envelopemaker)">handle_request(HeaderArray, Body, EnvelopeMaker)</A></LI>
  28.         <LI><A HREF="#custom_dispatcher(requestedclass, headerarray, body, envelopemaker)">custom_dispatcher(RequestedClass, HeaderArray, Body, EnvelopeMaker)</A></LI>
  29.     </UL>
  30.  
  31.     <LI><A HREF="#dependencies">DEPENDENCIES</A></LI>
  32.     <LI><A HREF="#author">AUTHOR</A></LI>
  33.     <LI><A HREF="#see also">SEE ALSO</A></LI>
  34. </UL>
  35. <!-- INDEX END -->
  36.  
  37. <HR>
  38. <P>
  39. <H1><A NAME="name">NAME</A></H1>
  40. <P>SOAP::Transport::HTTP::Server - Server side HTTP support for SOAP/Perl</P>
  41. <P>
  42. <HR>
  43. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  44. <UL>
  45. <LI>Linux</LI>
  46. <LI>Solaris</LI>
  47. <LI>Windows</LI>
  48. </UL>
  49. <HR>
  50. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  51. <PRE>
  52.     use SOAP::Transport::HTTP::Server;</PRE>
  53. <P>
  54. <HR>
  55. <H1><A NAME="description">DESCRIPTION</A></H1>
  56. <P>This class provides all the HTTP related smarts for a SOAP server,
  57. independent of what web browser it's attached to. It exposes
  58. a single function (that you'll never call, unless you're adapting
  59. SOAP/Perl to a new web server environment) that provides a set
  60. of function pointers for doing various things, like getting
  61. information about the request and sending response headers
  62. and content.</P>
  63. <P>What *is* important to know about this class is what it expects
  64. of you if you want to handle SOAP requests. You must implement
  65. your class such that it can be created via <CODE>new()</CODE> with no
  66. arguments, and you must implement a single function:</P>
  67. <P>
  68. <H2><A NAME="handle_request(headerarray, body, envelopemaker)">handle_request(HeaderArray, Body, EnvelopeMaker)</A></H2>
  69. <P>The first two arguments are the input, an array of header objects
  70. (which may be empty if no headers were sent), a single Body object,
  71. and a third object to allow you to send a response.</P>
  72. <P>See EnvelopeMaker to learn how to send a response (this is the
  73. same class used by a client to send the request, so if you know
  74. how to do that, you're cooking with gas).</P>
  75. <P>HeaderArray and Body are today simply hash references, but in the
  76. future, they may be blessed object references.</P>
  77. <P>If you want to customize this call-dispatching mechanism, you
  78. may pass a code reference for the OptionalDispatcher argument.</P>
  79. <P>The OptionalDispatcher argument allows you to override the default
  80. dispatching behavior with your own code. This should reference a
  81. subroutine with the following signature:</P>
  82. <P>
  83. <H2><A NAME="custom_dispatcher(requestedclass, headerarray, body, envelopemaker)">custom_dispatcher(RequestedClass, HeaderArray, Body, EnvelopeMaker)</A></H2>
  84. <P>sub my_dispatcher {
  85.     my ($requested_class, $headers, $body, $em) = @_;</P>
  86. <PRE>
  87.     # here's a simple example that converts the request
  88.     # into a method call (it doesn't deal with headers though)
  89.     my $method_name = $body->{soap_typename};
  90.     require $requested_class . '.pm';
  91.     my $retval = $requested_class->$method_name(%$body);
  92.     $em->set_body($body->{soap_typeuri}, $method_name . 'Response',
  93.                   0, {return => $retval});
  94. }</PRE>
  95. <P>The above example handles each request by invoking a class-level method
  96. on the requested class.</P>
  97. <P>
  98. <HR>
  99. <H1><A NAME="dependencies">DEPENDENCIES</A></H1>
  100. <P>SOAP::Defs
  101. SOAP::Parser
  102. SOAP::EnvelopeMaker</P>
  103. <P>
  104. <HR>
  105. <H1><A NAME="author">AUTHOR</A></H1>
  106. <P>Keith Brown</P>
  107. <P>
  108. <HR>
  109. <H1><A NAME="see also">SEE ALSO</A></H1>
  110. <P>SOAP::Transport::HTTP::EnvelopeMaker
  111. SOAP::Transport::HTTP::Apache</P>
  112. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  113. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  114. <STRONG><P CLASS=block> SOAP::Transport::HTTP::Server - Server side HTTP support for SOAP/Perl</P></STRONG>
  115. </TD></TR>
  116. </TABLE>
  117.  
  118. </BODY>
  119.  
  120. </HTML>
  121.