0

RestEasy を使用して Windows Live から連絡先を取得しようとしています

ユーザーの認証に成功した後、https: //livecontacts.services.live.com/users/@L@ /rest/livecontacts への呼び出しを行いました。認証ヘッダーを設定し、ID とトークンを追加しました。

cUrl を使用してコマンド ラインから呼び出しを行うと、期待どおりの出力が得られますが、Web アプリケーションでは意味不明な内容が返されます

例えば

...?{?[??e^7E?...

現在のインターフェースクラスは

public interface WindowsLiveAPI {

 @GET
 @Path(value="/@L@{liveId}/rest/livecontacts")
 Response getContacts(@PathParam("liveId") @Encoded String liveId, @HeaderParam("Authorization") String delegatedToken);

}

スローアウェイテスト:

ResteasyProviderFactory.getInstance().addMessageBodyReader(DefaultTextPlain.class);

        RegisterBuiltin.register(ResteasyProviderFactory.getInstance());


        WindowsLiveAPI client = ProxyFactory.create(WindowsLiveAPI.class, "https://livecontacts.services.live.com");
        ClientResponse<LiveContacts> response = (ClientResponse) client.getContacts(LIVE_ID, DELEGATED_TOKEN);
        System.out.println(response.getStatus()); //Produces 200 (401 after token expires)

        System.out.println(response.getEntity(String.class)); //produces gibberish

誰でも応答をアンマーシャリングする方法の手がかりを持っていますか

4

1 に答える 1

0

メソッドで @Produces(MediaType.APPLICATION_XML) [XML の場合] を試すことができます。

于 2010-06-23T17:17:26.747 に答える