JavaクライアントでのOData照会に関する問題があります。JavaクライアントでのOData不正リクエスト400
私がPostmanを使用すると、すべて正常に動作し、メタデータのWebサービスからの応答が返されます。しかし、SCP/HCP上で動作しないJavaクライアントでは、「400-Bad Request」を受信しています。私はオリジナルのOlingo libaryを使いました。
私は$ metadataパラメータしか使用しませんでしたので、フィルタ値などはありません。
public void sendGet(String user, String password, String url) throws IOException, URISyntaxException {
//文字列userPassword = user + ":" + password; //文字列エンコーディング= Base64.encodeBase64String(userPassword.getBytes( "UTF-8"));
URL obj = new URL(url);
URL urlToEncode = new URL(url);
URI uri = new URI(urlToEncode.getProtocol(), urlToEncode.getUserInfo(), urlToEncode.getHost(), urlToEncode.getPort(), urlToEncode.getPath(), urlToEncode.getQuery(), urlToEncode.getRef());
// open Connection
HttpURLConnection con = (HttpURLConnection) uri.toURL().openConnection();
// Basis Authentifizierung
con.setRequestProperty("Authorization", "Basic " + user);
// optional default is GET
con.setRequestMethod("GET");
// add request header
con.setRequestProperty("Content-Type", "application/xml");
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
response.append("\n");
}
in.close();
// print result
System.out.println(response.toString());
// Schließt eine Vorhandene Verbindung
con.disconnect();
のユーザーは既にエンコードされた値です。この1つを操作することで、私は認証エラーを受け取りましたので、既にテスト済みです。
誰かが、その場合には私を助けることができるかもしれ:)事前に
感謝を。 チーム