private ResponseMessage SendData()

in src/main/java/com/aliyun/openservices/log/Client.java [2128:2195]


	private ResponseMessage SendData(String project, HttpMethod method, String resourceUri,
									 Map<String, String> parameters, Map<String, String> headers, byte[] body,
									 Map<String, String> outputHeader, String serverIp)
			throws LogException {
		if (resourceOwnerAccount != null && !resourceOwnerAccount.isEmpty()) {
			headers.put(Consts.CONST_X_LOG_RESOURCEOWNERACCOUNT, resourceOwnerAccount);
		}
		try {
			signer.sign(method, headers, resourceUri, parameters, body);
		} catch (Exception e) {
			throw new LogException("ClientSignatureError",
					"Fail to calculate signature for request, error:" + e.getMessage(), "");
		}
		URI uri;
		if (serverIp == null) {
			uri = GetHostURI(project);
		} else {
			uri = GetHostURIByIp(serverIp);
		}
		RequestMessage request = BuildRequest(uri, method,
				resourceUri, parameters, headers,
				new ByteArrayInputStream(body), body.length);
		ResponseMessage response = null;
		try {
			response = this.serviceClient.sendRequest(request, Consts.UTF_8_ENCODING);
			ExtractResponseBody(response);
			if (outputHeader != null) {
				outputHeader.putAll(response.getHeaders());
			}
			int statusCode = response.getStatusCode();
			if (statusCode != Consts.CONST_HTTP_OK) {
				String requestId = GetRequestId(response.getHeaders());
				try {
					String responseBody = encodeResponseBodyToUtf8String(response, requestId);
					JSONObject object = null;
					try {
						object = JSONObject.parseObject(responseBody, Feature.DisableSpecialKeyDetect);
					} catch (JSONException ex) {
						throw new LogException(ErrorCodes.BAD_RESPONSE,
								"The response is not valid json string : " + responseBody + ", statusCode: "
										+ statusCode + ", requestId: " + requestId,
								ex, requestId);
					}
					if (null == object) {
						throw new LogException(ErrorCodes.BAD_RESPONSE,
								"The response is not valid json string : " + responseBody + ", statusCode: "
										+ statusCode + ", requestId: " + requestId,
								requestId);
					}
					ErrorCheck(object, requestId, statusCode, responseBody);
				} catch (LogException ex) {
					ex.setHttpCode(response.getStatusCode());
					throw ex;
				}
			}
		} catch (ServiceException e) {
			throw new LogException("RequestError", "Web request failed: " + e.getMessage(), e, "");
		} catch (ClientException e) {
			throw new LogException("RequestError", "Web request failed: " + e.getMessage(), e, "");
		} finally {
			try {
				if (response != null) {
					response.close();
				}
			} catch (IOException ignore) {}
		}
		return response;
	}