Java で Rest API を使用して QC 11 にアクセスしようとしています。
HPが提供するマニュアルのAPIリファレンスに従っています。以下は、ログイン認証の基本的な手順です。
非 Web アプリケーション認可クライアントは is-authenticated リソースを照会し、認証ヘッダーを送信しません。この手順はオプションです。
GET /qcbin/rest/is-authenticated
サーバーは要求を拒否し、認証ポイントへの参照を返します。
HTTP/1.1 401 Unauthorized WWW-Authenticate: LWSSO realm=http://[server]:[port]/qcbin/authentication-point
クライアントは有効な基本認証ヘッダーを認証ポイントに送信します。
GET /qcbin/authentication-point/authenticate 認証: 基本 ABCDE123
サーバーは基本認証ヘッダーを検証し、新しい LW-SSO トークンを作成して、それを LWSSO_COOKIE_KEY として返します。
HTTP/1.1 200 OK Set-Cookie: LWSSO_COOKIE_KEY={cookie}
アプリケーションは、トークンを使用してデータとサービスにアクセスできるようになりました。セッションの最後に、ログオフしてトークンを破棄します。
これが私のJavaコードです。
DefaultHttpClient httpClient = new DefaultHttpClient();
String encoding = Base64.encodeBase64String("demoUser:demoUser123".getBytes());
HttpGet httpGet = new HttpGet("http://HOST_VALUE:PORT_VALUE/qcbin/authentication-point/authenticate");
//httpGet.setHeader("GET", "/qcbin/authentication-point/authenticate");
httpGet.setHeader("Authorization:", "Basic " + encoding);
HttpResponse response;
httpClient.getCredentialsProvider().setCredentials(
new AuthScope("proxyHost", 8080),
new UsernamePasswordCredentials("userName", "Password"));
response = httpClient.execute(httpGet);
System.out.println(response.getAllHeaders().toString());
System.out.println(response.getStatusLine().toString());
BufferedReader br = new BufferedReader(
new InputStreamReader((response.getEntity().getContent())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
httpClient.getConnectionManager().shutdown();
次のような出力が得られます
[Lorg.apache.http.Header;@159e154 HTTP/1.1 400 Bad Request Output from Server ....
Java を使用して REST を使用するのは初めてです。誰でも助けることができますか?REST を使用して ALM に接続し、データをフェッチする例はありますか?