gzip Java Request Response Sample

 

package com.cendant.tds.samples;

 

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import java.net.URLConnection;

import java.util.zip.GZIPInputStream;

import java.util.zip.GZIPOutputStream;

 

import sun.misc.BASE64Encoder;

 

public class GZipSample {

     public static void main(String[] args) throws IOException {

          BASE64Encoder b64 = new BASE64Encoder();

          URL url;

          URLConnection urlConn;

          DataOutputStream printout;

          InputStream input = null;

          url = new URL("https://americas.webservices.travelport.com/B2BGateway/service/TravelCodesTranslator");  //create a new URL OBJECT and open connection

          urlConn = url.openConnection();

          urlConn.setDoInput(true);

          urlConn.setDoOutput(true);

          urlConn.setUseCaches(false);

          urlConn.setRequestProperty("Content-Type","text/xml");

          urlConn.setRequestProperty("Content-Encoding","gzip"); //Let the server know that you are sending gzipped request

          urlConn.setRequestProperty("SOAPAction","echoservice");

          urlConn.setRequestProperty("Accept-Encoding","gzip"); //Let the server know that you can process gzipped response

          

          String auth = b64.encode("USERID:PASSWORD".getBytes()); //Update with your own userID and password

          urlConn.setRequestProperty("Authorization", "Basic " + auth);

          printout = new DataOutputStream(new GZIPOutputStream(urlConn.getOutputStream())); //create a gzipped stream for output

          String content = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">       <SOAP-ENV:Body> PUT YOUR REQUEST BODY HERE </SOAP-ENV:Body></SOAP-ENV:Envelope>";

          printout.writeBytes(content); // write your request to the gzipped output stream

          printout.flush();

          printout.close();

 

          String encoding = urlConn.getContentEncoding();

          try

          {

              if (encoding != null && encoding.equalsIgnoreCase("gzip")) // Check if the server sent you a gzipped response

              {

                   System.out.println("THIS IS A GZIPPPPPPPPPED STREAM"); // Process gzipped response

                   input = new GZIPInputStream(urlConn.getInputStream());

              }

              else

              {

                   System.out.println("THIS IS NOT A GZIPPPPPPPPPED STREAM");

                   input = new DataInputStream(urlConn.getInputStream());

              }

          }

          catch (Exception e)

          {

          }

 

          int rc;

 

          // Read from the stream and process the response

          while (-1 != (rc = input.read())) {

              System.out.print((char) rc);

          }

          input.close();

 

 

     }

}