public ResponseStatus checkConnectionResponse(final ClassicHttpResponse response,
                                                  final AttributeMap attributeMap) {
        StroomStatusCode stroomStatusCode;
        int httpResponseCode;
        String receiptId;
        String responseMessage;
        try {
            httpResponseCode = response.getCode();
            responseMessage = NullSafe.nonBlankStringElseGet(
                    getHeader(response, StandardHeaderArguments.STROOM_ERROR),
                    response::getReasonPhrase);

            stroomStatusCode = getStroomStatusCode(response);
            if (stroomStatusCode == null) {
                stroomStatusCode = StroomStatusCode.fromHttpCode(httpResponseCode);
                LOGGER.debug("Null stroomStatusCode, httpResponseCode: {}, responseMessage: '{}'",
                        httpResponseCode, responseMessage);
            }

            // Response payload should be a plain text receipt ID
            // TODO Should we get receiptId from content or from a resp header?
            receiptId = readResponseContent(response);

            LOGGER.debug("httpResponseCode: {}, stroomStatusCode: {}, receiptId: {}, responseMessage: {}",
                    httpResponseCode, stroomStatusCode, receiptId, responseMessage);

            if (httpResponseCode == 200) {
                if (httpResponseCode != stroomStatusCode.getHttpCode()) {
                    // Shouldn't really happen but warn if it does
                    LOGGER.warn("httpResponseCode {} is different to the stroomStatusCode.httpCode {}, " +
                                "(stroomStatusCode.code {}, stroomStatusCode.message '{}')",
                            httpResponseCode,
                            stroomStatusCode.getHttpCode(),
                            stroomStatusCode.getCode(),
                            stroomStatusCode.getMessage());
                }
            }
            return new ResponseStatus(stroomStatusCode, receiptId, responseMessage, httpResponseCode);
        } catch (final Exception ioEx) {
            LOGGER.debug(() -> LogUtil.message("Error sending to forwardUrl '{}': {}",
                    forwardUrl, LogUtil.exceptionMessage(ioEx)));
            throw ioEx;
//            throw new StroomStreamException(
//                    StroomStatusCode.UNKNOWN_ERROR,
//                    attributeMap,
//                    LogUtil.exceptionMessage(ioEx));
        }
    }
Checks the response code and stroom status for the connection and attributeMap.
Either returns 200 or throws a {@link StroomStreamException}.

@return The HTTP response code
@throws StroomStreamException if a non-200 response is received
stroom-proxy/stroom-proxy-app/src/main/java/stroom/proxy/app/handler/HttpSender.java