2017-11-20 18 views
0

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つを操作することで、私は認証エラーを受け取りましたので、既にテスト済みです。

誰かが、その場合には私を助けることができるかもしれ:)事前に

感謝を。 チーム

答えて

0

私は自分で解決しました。

私はステートメントcon.setRequestProperty( "Accept"、 "application/xml")を追加しました。それは私のために働く。

多分それは他人を助けることができます。

関連する問題