import javax.net.ssl.HttpsURLConnection; //导入方法依赖的package包/类
private static String getRawAPIResponse(String urlSuffix, String requestMethod, String body) throws AuthorizationException, IOException, InsufficientValueException, CouldNotFindObjectException {
URL requestURL = new URL(LightrailConstants.API.apiBaseURL + urlSuffix);
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) requestURL.openConnection();
httpsURLConnection.setRequestProperty(
LightrailConstants.API.AUTHORIZATION_HEADER_NAME,
LightrailConstants.API.AUTHORIZATION_TOKEN_TYPE + " " + Lightrail.apiKey);
httpsURLConnection.setRequestMethod(requestMethod);
if (body != null) {
httpsURLConnection.setRequestProperty(LightrailConstants.API.CONTENT_TYPE_HEADER_NAME, LightrailConstants.API.CONTENT_TYPE_JSON_UTF8);
httpsURLConnection.setDoOutput(true);
OutputStream wr = httpsURLConnection.getOutputStream();
wr.write(body.getBytes(StandardCharsets.UTF_8));
wr.flush();
wr.close();
}
int responseCode = httpsURLConnection.getResponseCode();
InputStream responseInputStream;
if (httpsURLConnection.getResponseCode() < HttpsURLConnection.HTTP_BAD_REQUEST) {
responseInputStream = httpsURLConnection.getInputStream();
} else {
responseInputStream = httpsURLConnection.getErrorStream();
}
BufferedReader responseReader = new BufferedReader(new InputStreamReader(responseInputStream, StandardCharsets.UTF_8));
StringBuilder responseStringBuffer = new StringBuilder();
String inputLine;
while ((inputLine = responseReader.readLine()) != null)
responseStringBuffer.append(inputLine).append('\n');
responseReader.close();
String responseString = responseStringBuffer.toString();
if (responseCode > 204) {
handleErrors(responseCode, responseString);
}
return responseString;
}