Forum Discussion

hbjastad's avatar
8 years ago

Turning off "Accept compressed responses from host" programmatically

Hi, I am trying to write an integration test in Java using SoapUI and the following code is able to do that:


            // create new project
            WsdlProject project = new WsdlProject();

            // import WSDL
            WsdlInterface wsdl = WsdlInterfaceFactory.importWsdl(project, endpoint.getWsdlUrl(), true)[0];

            // get desired operation
            WsdlOperation operation = wsdl.getOperationByName(operationName);

            // create a new empty request for that operation
            WsdlRequest request = operation.addNewRequest("My request");
            //WsdlRequest request = operation.getRequestAt(0);

            // generate the request content from the schema

            // submit the request
            WsdlSubmitContext submitContext = new WsdlSubmitContext(request);
            WsdlSubmit submit = request.submit(submitContext, false);

            // wait for the response
            Response response = submit.getResponse();

            //	validate the response
            String content = response.getContentAsString();


But when I look at the content, it is scrambled. The following 2 posts suggests that the solution is to turn off "Accept compressed responses from host":


But I need to do this programmatically, not from the UI. How can I achieve the same programmatically?

  • nmrao's avatar
    8 years ago

    Any way here it is to change the settings


    //Change value what is needed for you true or false
    boolean value = false;
    SoapUI.getSettings().setBoolean(HttpSettings.RESPONSE_COMPRESSION, value);

8 Replies

  • nmrao's avatar
    Champion Level 3
    I think it is one time configuration using preferences.
  • What do you mean by "one time configuration using preferences"? I need to get this working in code, not the GUI.


    The best solution would be to be able to decode the response, which is gzip. I have tried the following alternatives, but they all result in ' Not in GZIP format':


    GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(((WsdlSinglePartHttpResponse) response).getRawResponseBody()));
    GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(response.getRawResponseData()));
    GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(response.getContentAsString().getBytes()));


    Does anyone have code that either turns off the ability to accept compressed responses, or that can decompress a compressed response?

    • hbjastad's avatar

      In case the content is base64 encoded, I even tried

      String zippedBase64Str = response.getContentAsString();
      byte[] bytes = Base64.decodeBase64(zippedBase64Str);
      GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(bytes));

      But the result is the same - "Not in GZIP format"


      • hbjastad's avatar

        nmrao, you keep pointing to the GUI. My question is about the API, not the GUI. I don't have any issues running accessing services from the GUI, but I struggle to decode the response from Java/Groovy code when using SoapUI as an API.