Turning off "Accept compressed responses from host" programmatically
SOLVED- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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); request.setEndpoint(endpoint.getEndpoint()); // generate the request content from the schema request.setRequestContent(operation.createRequest(true)); // 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(); System.out.println(content);
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?
Solved! Go to Solution.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Regards,
Rao.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 'java.util.zip.ZipException: 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?
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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"
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@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.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you make the changes in the preferences, the settings are saved in the soapui-settings.xml file. If you use this settings file while executing(does not have to use UI, at least, you would know what change is required in xml if the preferences are change ), then you have do not have make any additional changes to handle this.
Regards,
Rao.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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);
Regards,
Rao.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you, that was exactly the line of code I was looking for!
