Herong's Tutorial Notes on Web Service and SOAP
Dr. Herong Yang, Version 4.00

SOAP 1.2 Request and Response of GetSpeech

This section provides a tutorial example on how to use SocketRequestResponse.pl to send a SOAP 1.1 request for the GetSpeech Web service provided by www.xmlme.com. The response of GetSpeech received looks very nice.

After finishing SOAP 1.1 test, I continued to use SocketRequestResponseBinary.pl to send a SOAP 1.2 request for the GetSpeech Web service.

According to the instructions given at http://www.xmlme.com/WSShakespeare.asmx?op=GetSpeech, I prepared by first request sample, soap_1_2_GetSpeech.req:

POST /WSShakespeare.asmx HTTP/1.1
Host: www.xmlme.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 416

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetSpeech xmlns="http://xmlme.com/WebServices">
      <Request>Cowards die many times before their deaths</Request>
    </GetSpeech>
  </soap12:Body>
</soap12:Envelope>

I carefully counted the number of bytes of the request content including the last \r\n and entered 416 in the Content-Length header line.

Here is the test result of my sample SOAP 1.2 request:

\herong>SocketRequestResponseBinary.pl www.xmlme.com 80 
   soap_1_2_GetSpeech.req soap_1_2.res

\herong>type soap_1_2.res
HTTP/1.1 200 OK
Connection: close
Date: ... 2009
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 725

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <GetSpeechResponse xmlns="http://xmlme.com/WebServices">
      <GetSpeechResult>
        &lt;SPEECH&gt;&lt;PLAY&gt;JULIUS CAESAR&lt;/PLAY&gt;
        &lt;SPEAKER&gt;CAESAR&lt;/SPEAKER&gt;Cowards die many times
        before their deaths; The valiant never taste of death but 
        ...&lt;/SPEECH&gt;
      </GetSpeechResult>
    </GetSpeechResponse>
  </soap:Body>
</soap:Envelope>

Very nice again. My first SOAP 1.2 test with SocketRequestResponseBinary.pl worked correctly.

The SOAP response message received as a single line without any line breaks. I reformatted it before inludeding it here.

Last update: 2009.

Sections in This Chapter

SocketRequestResponse.pl - Socket Level Testing Program

Examples of HTTP 1.0 Requests and Responses

Examples of HTTP 1.1 Requests and Responses

SOAP 1.1 Request - Content-Length Too Small

SOAP 1.1 Request - Content-Length Too Large

SOAP 1.1 Request and Response of GetSpeech

SOAP 1.2 Request and Response of GetSpeech

Dr. Herong Yang, updated in 2009
SOAP 1.2 Request and Response of GetSpeech