1
Webアプリケーションに接続する必要があります。要求されたURLがアプリケーション内でマッピングされていない場合は、HTTPリダイレクトを実行します。 (例:/ users - >/users /)認証のために、私たちはトークンベースのアプローチを使用しているので、それぞれのリクエストでトークンを送信する必要があります。HttpURLConnection:リダイレクト後に既に接続されています
リダイレクト後にトークンを設定すると、いつもjava.lang.IllegalStateException: Already connected
が表示されます。誰かがこの問題で私を助けることができますか?ここで
は私がやったことです:
try {
// setup connection
URL url = new URL(ENDPOINT + path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(method.toString().toUpperCase());
connection.setInstanceFollowRedirects(false);
// has the request been redirected?
if (connection.getResponseCode() == HttpURLConnection.HTTP_MOVED_PERM) {
String newUrl = connection.getHeaderField("Location");
connection = (HttpURLConnection) new URL(ENDPOINT + newUrl).openConnection();
}
if (useToken) {
connection.addRequestProperty("Authorization", testToken);
}
// post data
if (data != null) {
connection.setDoOutput(true);
connection.addRequestProperty("Content-Type", "application/json");
String json = new Gson().toJson(data);
try (OutputStream dataStream = connection.getOutputStream()) {
dataStream.write(json.getBytes());
}
}
// retrieve response
String body = IOUtils.toString(connection.getInputStream());
return new TestResponse(connection.getResponseCode(), body);
} catch (IOException ex) {
LOGGER.error(ex.getMessage());
return null;
}
私はそれを試みましたが、トークンを含むAuthorizationヘッダーが設定されていません。 – Tunguska
私は、どの時点で例外がスローされるのか分かりますか? – Ryan
"Authorization"ヘッダを設定したとき – Tunguska