Forum Discussion

smallfreak's avatar
smallfreak
New Contributor
2 months ago
Solved

Content-Length calculation wrong when posting UTF-8 content

The current project is driving me crazy ...

I carefully followed the "Unicode Best-Practice" guide (https://support.smartbear.com/readyapi/docs/testing/best-practices/unicode-support.html) which cured my problem when reading(!) some(!) UTF-8 encoded characters within a RESPONSE.

The 

-Dfile.encoding=UTF8

in the *.vmoptions did the trick. Would make a good default setting...

I even got the JSON POST reply formatted as UTF-8 correctly by specifically specifying the UTF-8 encoding in the REST properties.

But I can't get the "Content-Length" header correct. It always is a few counts short. Either it's because the data indeed contains UTF-8 multy-byte characters or it is counting line-breaks wrong. It might count "characters" instead of "bytes". My back-end complains with a 500 error.

Shouldn't the above setting care for the Content-Length too?

If I watch the communication in Fiddler, copy over the request content to notepad++ to see the actual length, manually change the Content-Length and re-issue the post, my back-end finally does accept the POST.

So what might I still missing?

  • As it turned out, SOAPUI DID calculate the Content-Length correct. However the back end service did not.

    The confusion was about the line endings. The header lines generated by SOAPUI were CRLF, the body however was LF only. Both the server and notepad++ did expand them to CRLF and obviously the server did count the expanded content, missing a byte for every line in the body.

    I did a replacement on the body content before I sent the request:

    //replace all wrong line-endings: \n --> \r\n
    body = body.replace("\r\n","\n").replace("\n","\r\n")
    def request = testRunner.testCase.getTestStepByName("UpdateVariables") as RestTestRequestStep
    //set body
    request.testRequest.setRequestContent(body)

    Afterwards the content was a few bytes larger and the server was happy.

    Maybe there is a more simple solution to have all line endings the same - and in a defined manner.

  • smallfreak's avatar
    smallfreak
    New Contributor

    SOAPUI 5.7.2 running on Windows.

    System Properties:

    apple.laf.useScreenMenuBar=true
    
    com.apple.mrj.application.apple.menu.about.name=SoapUI
    
    exe4j.consoleCodepage=cp0
    exe4j.isInstall4j=true
    exe4j.launchName=C:\Program Files\SmartBear\SoapUI-5.7.1\bin\SoapUI-5.7.2.exe
    exe4j.moduleName=C:\Program Files\SmartBear\SoapUI-5.7.1\bin\SoapUI-5.7.2.exe
    exe4j.semaphoreName=Local\c:_program_files_smartbear_soapui-5.7.1_bin_soapui-5.7.2.exe0
    exe4j.tempDir=
    exe4j.unextractedPosition=0
    
    file.encoding=UTF8
    file.separator=\
    
    install4j.appDir=C:\Program Files\SmartBear\SoapUI-5.7.1\
    install4j.exeDir=C:\Program Files\SmartBear\SoapUI-5.7.1\bin\
    install4j.launcherId=64
    install4j.swt=false
    
    java.class.path=C:\Program Files\SmartBear\SoapUI-5.7.1\.install4j\i4jruntime.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\bin\soapui-5.7.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\accessors-smart-1.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\activation-1.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\analytics-core-5.5.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\animal-sniffer-annotations-1.11.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\ant-1.10.8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\ant-antlr-1.10.8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\ant-junit-1.10.8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\ant-launcher-1.10.8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\antlr4-runtime-4.9.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\aopalliance-repackaged-2.6.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\bcprov-jdk15on-1.64.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\binding-2.0.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\btf-1.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\cal10n-api-0.8.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-beanutils-1.9.4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-cli-1.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-codec-1.10.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-collections-3.2.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-csv-1.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-fileupload-1.4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-httpclient-3.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-io-2.4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-lang-2.4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-lang3-3.4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\commons-logging-1.1.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\cssparser-0.9.5.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\dom4j-1.6.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\ezmorph-1.0.5.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\FastInfoset-1.2.16.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\flex-messaging-common-1.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\flex-messaging-core-1.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\flex-messaging-opt-1.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\flex-messaging-proxy-1.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\flex-messaging-remoting-1.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\forms-1.0.7.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\google-http-client-1.21.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\google-oauth-client-1.21.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\graphql-java-17.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-ant-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-astbuilder-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-cli-picocli-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-console-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-datetime-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-dateutil-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-docgenerator-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-groovydoc-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-groovysh-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-jmx-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-json-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-jsr223-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-macro-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-nio-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-servlet-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-sql-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-swing-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-templates-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-test-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-test-junit5-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-testng-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\groovy-xml-3.0.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\guava-14.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\hamcrest-core-1.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\hermes-1.14.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\hk2-api-2.6.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\hk2-locator-2.6.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\hk2-utils-2.6.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\htmlunit-2.7.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\htmlunit-core-js-2.7.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\httpclient-4.5.5.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\httpclient-cache-4.5.5.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\httpcore-4.4.9.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\httpcore-nio-4.4.9.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\httpmime-4.5.5.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\i4jruntime-5.1.14.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\istack-commons-runtime-3.0.8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-annotations-2.13.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-core-2.13.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-coreutils-1.8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-databind-2.13.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-dataformat-xml-2.10.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-dataformat-yaml-2.11.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-datatype-joda-2.10.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-jaxrs-base-2.10.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-jaxrs-json-provider-2.10.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-jaxrs-xml-provider-2.10.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jackson-module-jaxb-annotations-2.10.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jakarta.activation-1.2.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jakarta.activation-api-1.2.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jakarta.annotation-api-1.3.5.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jakarta.inject-2.6.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jakarta.validation-api-2.0.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jakarta.ws.rs-api-2.1.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jakarta.xml.bind-api-2.3.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\java-dataloader-3.1.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-base-16-win.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-base-16.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-controls-16-win.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-controls-16.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-graphics-16-win.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-graphics-16.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-media-16-win.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-media-16.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-swing-16-win.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javafx-web-16-win.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javaparser-core-3.16.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\javassist-3.16.1-GA.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jaxb-runtime-2.3.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jaxen-1.1-beta-8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jcifs-1.2.9.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jcommander-1.78.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jdom-1.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jersey-client-2.29.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jersey-common-2.29.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jersey-container-servlet-core-2.29.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jersey-hk2-2.29.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jersey-media-jaxb-2.29.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jersey-media-multipart-2.29.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jersey-server-2.29.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jettison-1.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jetty-6.1.26.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jetty-util-6.1.26.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jline-2.14.6.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jms-1.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\joda-time-2.9.9.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jopt-simple-5.0.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\js-1.7R2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\json-20090211.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\json-lib-2.2.2-jdk15.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\json-path-2.4.0-fixed.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\json-schema-core-1.2.8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\json-schema-validator-2.2.8.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\json-smart-2.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jsr173_api-1.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jsr305-1.3.9.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\jtidy-r872-jdk15.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\junit-4.13.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\junit-jupiter-api-5.7.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\junit-jupiter-engine-5.7.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\junit-platform-commons-1.7.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\junit-platform-engine-1.7.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\junit-platform-launcher-1.7.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\l2fprod-common-directorychooser-7.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\l2fprod-common-fontchooser-7.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\libphonenumber-8.0.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\log4j-api-2.17.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\log4j-core-2.17.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\log4j-slf4j-impl-2.17.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\looks-2.2.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\mail-1.4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\mailapi-1.4.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\maven-plugin-api-2.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\miglayout-core-11.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\miglayout-swing-11.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\mimepull-1.9.11.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\mixpanel-java-1.4.4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\msg-simple-1.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\nekohtml-1.9.14.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\not-going-to-be-commons-ssl-0.3.20.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\opensaml-2.5.1-1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\opentest4j-1.2.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\openws-1.4.2-1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\org.apache.oltu.oauth2.client-0.31.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\org.apache.oltu.oauth2.common-0.31.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\org.apache.oltu.oauth2.httpclient4-0.31.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\osgi-resource-locator-1.0.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\out-app-analytics-provider-5.5.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\picocli-4.5.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\proxy-vole-20131209.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\qdox-1.12.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\reactive-streams-1.0.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\reflections-0.9.9-RC1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\rhino-1.7R4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\rsyntaxtextarea-2.5.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\sac-1.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\saxon-9.1.0.8j.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\saxon-9.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\saxon-dom-9.1.0.8j.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\serializer-2.7.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\servlet-api-2.5-20081211.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\slf4j-api-1.7.25.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\slf4j-ext-1.7.22.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\snakeyaml-1.26.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\stax-ex-1.8.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\stax2-api-3.1.4.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\swagger-annotations-1.6.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\swagger-core-1.6.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\swagger-inflector-1.0.19.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\swagger-jaxrs-1.6.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\swagger-jersey2-jaxrs-1.6.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\swagger-models-1.6.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\swagger-parser-1.0.54.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\swingx-soapui.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\testng-7.3.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\txw2-2.3.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\uri-template-0.9.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\woodstox-core-5.0.3.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\ws-commons-util-1.0.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\wsdl4j-1.6.2-fixed.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\wss4j-1.6.17.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xalan-2.7.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xercesImpl-2.12.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xml-apis-1.4.01.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xml-apis-2.9.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xmlbeans-3.1.1-sb-fixed.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xmlbeans-xpath-2.6.0.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xmlParserAPIs-2.6.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xmlpull-1.1.3.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xmlsec-2.1.7.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xmltooling-1.3.2-1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xmlunit-1.2.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xom-1.1.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xpp3_min-1.1.4c.jar;C:\Program Files\SmartBear\SoapUI-5.7.1\bin\..\lib\xstream-1.4.13.jar
    java.class.version=60.0
    java.home=c:\program files\smartbear\soapui-5.7.1\jre
    java.io.tmpdir=C:\Users\rorso\AppData\Local\Temp\
    java.library.path=C:\Program Files\SmartBear\SoapUI-5.7.1/bin
    java.runtime.name=OpenJDK Runtime Environment
    java.runtime.version=16.0.2+7
    java.specification.name=Java Platform API Specification
    java.specification.vendor=Oracle Corporation
    java.specification.version=16
    java.util.Arrays.useLegacyMergeSort=true
    java.vendor=BellSoft
    java.vendor.url=https://bell-sw.com/
    java.vendor.url.bug=https://bell-sw.com/support
    java.version=16.0.2
    java.version.date=2021-07-20
    java.vm.compressedOopsMode=32-bit
    java.vm.info=mixed mode
    java.vm.name=OpenJDK 64-Bit Server VM
    java.vm.specification.name=Java Virtual Machine Specification
    java.vm.specification.vendor=Oracle Corporation
    java.vm.specification.version=16
    java.vm.vendor=BellSoft
    java.vm.version=16.0.2+7
    
    jdk.debug=release
    
    line.separator=
    
    
    log4j2.formatMsgNoLookups=true
    
    os.arch=amd64
    os.name=Windows 10
    os.version=10.0
    
    path.separator=;
    
    soapui.ext.actions=C:\Program Files\SmartBear\SoapUI-5.7.1/bin/actions
    soapui.ext.libraries=C:\Program Files\SmartBear\SoapUI-5.7.1/bin/ext
    soapui.ext.listeners=C:\Program Files\SmartBear\SoapUI-5.7.1/bin/listeners
    soapui.home=C:\Program Files\SmartBear\SoapUI-5.7.1/bin
    soapui.properties=soapui.properties
    
    sun.arch.data.model=64
    sun.awt.enableExtraMouseButtons=true
    sun.boot.library.path=c:\program files\smartbear\soapui-5.7.1\jre\bin
    sun.cpu.endian=little
    sun.cpu.isalist=amd64
    sun.io.unicode.encoding=UnicodeLittle
    sun.java.command=C:\Program Files\SmartBear\SoapUI-5.7.1\bin\SoapUI-5.7.2.exe
    sun.jnu.encoding=Cp1252
    sun.management.compiler=HotSpot 64-Bit Tiered Compilers
    sun.os.patch.level=
    
    user.country=DE
    user.dir=C:\Program Files\SmartBear\SoapUI-5.7.1\bin
    user.home=C:\Users\rorso
    user.language=de
    user.name=rorso
    user.script=
    user.timezone=Europe/Berlin
    user.variant=
    
    wsi.dir=C:\Program Files\SmartBear\SoapUI-5.7.1/wsi-test-tools

     

  • smallfreak's avatar
    smallfreak
    New Contributor

    As it turned out, SOAPUI DID calculate the Content-Length correct. However the back end service did not.

    The confusion was about the line endings. The header lines generated by SOAPUI were CRLF, the body however was LF only. Both the server and notepad++ did expand them to CRLF and obviously the server did count the expanded content, missing a byte for every line in the body.

    I did a replacement on the body content before I sent the request:

    //replace all wrong line-endings: \n --> \r\n
    body = body.replace("\r\n","\n").replace("\n","\r\n")
    def request = testRunner.testCase.getTestStepByName("UpdateVariables") as RestTestRequestStep
    //set body
    request.testRequest.setRequestContent(body)

    Afterwards the content was a few bytes larger and the server was happy.

    Maybe there is a more simple solution to have all line endings the same - and in a defined manner.