Archived Forum Post

Index of archived forum posts

Question:

POST failured with big Content-Length - Integration with EWS Microsoft Exchange Server

Jul 17 '17 at 15:46

I am try to teste integration with EWS WebServer (Use EWS to import an item by using the MIME stream) . In my test it works perfect up to 200k Content-Length.

Content greater than 200k I have problems. I try PostXml and SynchronousRequest But only small content works.

He does not even begin to negotiate NTLM.

Log Session:

---- Sending ----

POST /EWS/Exchange.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip
Host: mail.MyServer.com.br
Content-Length: 286213

Debug Log:

PostXml:
    DllDate: May 25 2017
    ChilkatVersion: 9.5.0.68
    Architecture: Little Endian; 64-bit
    Language: Visual C++ 2015 / x64
    VerboseLogging: 1
    url: https://mail.MyServer.com.br/EWS/Exchange.asmx
    charset: utf-8
    HttpLogin: Serverteste
    A passpassword has been provided.
    urlObject_loadUrl:
        (leaveContext)
    finalizeRequestHeader:
        Auto-adding Host header.
        (leaveContext)
    fullRequest:
        findAddHttpConn:
            (leaveContext)
        httpRequest:
            httpVersion: 1.1
            verb: POST
            path: /EWS/Exchange.asmx
            contentType: text/xml; charset=utf-8
            charset: windows-1252
            sendCharset: 0
            mimeHeader: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
User-Agent: Server - (www.Server.com.br)
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip
            requestParams:
                (leaveContext)
            (leaveContext)
        HttpOptions:
            AddHostHeader: 1
            AllowCookieResponseCaching: 0
            AllowGzip: 1
            CookieDir: 
            FollowRedirects: 1
            Login: Serverteste
            LoginDomain: MyServer
            AuthMethod: negotiate
            MaxResponseSize: 0
            MaxUrlLen: 2000
            PasswordLen: 9
            ReadTimeoutMs: 60000
            RequiredContentType: 
            ResumePoint: 0
            SaveCookies: 1
            SendBufferSize: 65535
            SendCookies: 1
            UnavailableRetryCount: 0
            UnavailableRetryWaitMs: 2000
            (leaveContext)
        a_synchronousRequest:
            generateRequestHeader:
                httpRequestGenStartLine:
                    authOnly: 0
                    hasMimeBody: 1
                    genStartLine:
                        startLine: POST /EWS/Exchange.asmx HTTP/1.1
                        (leaveContext)
                    (leaveContext)
                startLine: POST /EWS/Exchange.asmx HTTP/1.1
                genHeaderSb:
                    getMimeHeaderHttp:
                        headerField: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
                        headerField: Connection: keep-alive
                        headerField: User-Agent: Server - (www.Server.com.br)
                        headerField: Accept-Language: en-us,en;q=0.5
                        headerField: Accept-Encoding: gzip
                        (leaveContext)
                    (leaveContext)
                addCookies:
                    Not auto-adding cookies.
                    sendCookies: 1
                    cookieDir: 
                    (leaveContext)
                m_host: mail.MyServer.com.br
                finalRequestHdr: Content-Type: text/xml; charset=utf-8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
User-Agent: Server - (www.Server.com.br)
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip
Host: mail.MyServer.com.br
Content-Length: 286213
                (leaveContext 15ms)
            fullHttpRequest:
                domain: mail.MyServer.com.br
                port: 443
                ssl: 1
                openHttpConnection:
                    quickCloseHttpConnection:
                        (leaveContext)
                    Opening connection directly to HTTP server.
                    httpHostname: mail.MyServer.com.br
                    httpPort: 443
                    tls: 1
                    bUsingHttpProxy: 0
                    httpProxyAuthMethod: 
                    socket2Connect:
                        connect2:
                            hostname: mail.MyServer.com.br
                            port: 443
                            ssl: 1
                            connectImplicitSsl:
                                Clearing TLS client certificates.
                                connectSocket:
                                    domainOrIpAddress: mail.MyServer.com.br
                                    port: 443
                                    connectTimeoutMs: 30000
                                    connect_ipv6_or_ipv4:
                                        Multi-threaded domain to IP address resolution
                                        resolveHostname6:
                                            getAddressInfo:
                                                (leaveContext)
                                            (leaveContext)
                                        findIpAddrInfo:
                                            (leaveContext)
                                        connecting to IPV4 address...
                                        ipAddress: 177.128.175.98
                                        createSocket:
                                            Setting SO_SNDBUF size
                                            sendBufSize: 262144
                                            Setting SO_RCVBUF size
                                            recvBufSize: 4194304
                                            (leaveContext)
                                        connect:
                                            Waiting for the connect to complete...
                                            ck_getsockname_ipv4:
                                                (leaveContext)
                                            myIP: 172.16.90.50
                                            myPort: 63040
                                            socket connect successful.
                                            (leaveContext 16ms)
                                        (leaveContext 16ms)
                                    (leaveContext 16ms)
                                clientHandshake:
                                    The client cert chain is NULL.
                                    cacheClientCerts:
                                        Cached TLS client certificates.
                                        Client cert chain is NULL.
                                        (leaveContext)
                                    clientHandshake2:
                                        createRandom:
                                            (leaveContext)
                                        sendClientHello:
                                            TlsClientHello_buildMessage:
                                                (leaveContext)
                                            sendHandshakeMessages:
                                                (leaveContext)
                                            (leaveContext)
                                        readHandshakeMessages:
                                            processHandshakeRecord:
                                                processHandshakeMessage:
                                                    processServerHello:
                                                        negotiatedTlsVersion: TLS 1.2
                                                        negotiatedCipherSuite: TLS_RSA_WITH_AES_256_CBC_SHA
                                                        minAcceptableRsaKeySize: 1024
                                                        (leaveContext)
                                                    (leaveContext)
                                                processHandshakeMessage:
                                                    processIncomingCertificates:
                                                        loadX509DerAlt:
                                                            der_to_xml:
                                                                (leaveContext)
                                                            (leaveContext)
                                                        loadX509DerAlt:
                                                            der_to_xml:
                                                                (leaveContext)
                                                            (leaveContext)
                                                        loadX509DerAlt:
                                                            der_to_xml:
                                                                (leaveContext)
                                                            (leaveContext)
                                                        loadX509DerAlt:
                                                            der_to_xml:
                                                                (leaveContext)
                                                            (leaveContext)
                                                        (leaveContext)
                                                    (leaveContext)
                                                processHandshakeMessage:
                                                    (leaveContext)
                                                (leaveContext)
                                            (leaveContext 16ms)
                                        readHandshakeMessages:
                                            (leaveContext)
                                        handleServerCert:
                                            readHandshakeMessages:
                                                (leaveContext)
                                            (leaveContext)
                                        buildClientKeyExchange:
                                            buildClientKeyExchangeRsa:
                                                getServerCertPublicKey:
                                                    x509_getPublicKey:
                                                        (leaveContext)
                                                    (leaveContext)
                                                loadAnyDer:
                                                    DecodeToAsn:
                                                        (leaveContext)
                                                    loadAnyAsn:
                                                        loadRsaPkcs1Asn:
                                                            (leaveContext)
                                                        (leaveContext)
                                                    (leaveContext)
                                                modulus_bitlen: 2048
                                                bigEndian: 1
                                                padding: PKCS 1.5
                                                (leaveContext 15ms)
                                            (leaveContext 15ms)
                                        sendClientKeyExchange:
                                            sendHandshakeMessages:
                                                (leaveContext)
                                            (leaveContext)
                                        sendChangeCipherSpec:
                                            (leaveContext)
                                        derive_keys:
                                            initCrypt_aes2:
                                                (leaveContext)
                                            initCrypt_aes2:
                                                (leaveContext)
                                            (leaveContext)
                                        buildFinished:
                                            calc_finished:
                                                (leaveContext)
                                            (leaveContext)
                                        sendHandshakeMessages:
                                            (leaveContext)
                                        readHandshakeMessages:
                                            (leaveContext)
                                        readHandshakeMessages:
                                            processHandshakeRecord:
                                                processHandshakeMessage:
                                                    processFinished:
                                                        (leaveContext)
                                                    (leaveContext)
                                                (leaveContext 16ms)
                                            (leaveContext 16ms)
                                        calc_finished:
                                            (leaveContext)
                                        saveSecureRenegInfo:
                                            (leaveContext)
                                        (leaveContext 47ms)
                                    (leaveContext 47ms)
                                checkServerCert:
                                    Not verifying server certificate...
                                    Set the RequireSslCertVerify property to enable verification.
                                    (leaveContext)
                                checkServerCertRequirement:
                                    (leaveContext)
                                SSL/TLS Channel Established.
                                (leaveContext 63ms)
                            (leaveContext 63ms)
                        (leaveContext 63ms)
                    Turning on TCP_NODELAY.
                    socketOptions:
                        SO_SNDBUF: 262144
                        SO_RCVBUF: 4194304
                        TCP_NODELAY: 1
                        SO_KEEPALIVE: 1
                        (leaveContext)
                    HTTPS secure channel established.
                    (leaveContext 63ms)
                connectTime: Elapsed time: 63 millisec
                startLine: POST /EWS/Exchange.asmx HTTP/1.1
                fullRequestHeader:
                    requestHeader: Content-Type: text/xml; charset=utf-8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
User-Agent: Server - (www.Server.com.br)
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip
Host: mail.MyServer.com.br
Content-Length: 286213
                    (leaveContext)
                computeRequestDataSize:
                    Request body is in a memory buffer..
                    (leaveContext)
                sendRequestHeader:
                    sendHeaderElapsedMs: 0
                    (leaveContext)
                sendRequestBody:
                    idleTimeoutMs: 60000
                    rqdType: 4
                    handleReceivedData:
                        Found end of response header...
                        (leaveContext)
                    sendBodyElapsedMs: 31
                    Failed to send HTTP request body.
                    quickCloseHttpConnection:
                        shutdownChannel:
                            (bForceClose) socket shutdown..
                            terminateConnection:
                                TCP connection cleanly closed by peer.
                                Cleanly terminated TCP connection.
                                (leaveContext 94ms)
                            Clearing TLS client certificates.
                            (leaveContext 94ms)
                        (leaveContext 94ms)
                    (leaveContext 125ms)
                (leaveContext 188ms)
            success: 0
            (leaveContext 203ms)
        success: 0
        (leaveContext 203ms)
    urlObject_loadUrl:
        (leaveContext)
    Failed.
    (leaveContext 219ms)

Answer

Probably has a bug in the API.

I made the same call with the same data using the api curl and it worked. I tested using Soap UI software and it worked, too.

thanks