0

ですから、これは人々が見る一般的なエラーのようですが、私はそれを解決する方法を理解することができません!Eclipseで(JBoss v7.1を使用して)単純なJava EEアプリを作成しようとしていますが、問題が解決しないように思われます。私はついに最後のハードルと思われるものにたどり着きました。アクセストークンを取得します。

私はそれを「手動で」プログラミングしています。http投稿を自分で設定する:

    @WebServlet("/callback") //user has accepted the authentication, and the auth code is sent to this url
    public class CallBackServlet extends HttpServlet {

            //my vars
            private static final String clientId = "123.apps.googleusercontent.com";
            private static final String clientSecret = "123abc";
            private static final String redirectUri = "http://localhost:8080/WebProjectA/callback";

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

                String code = request.getParameter("code"); //grabs the auth code

                //set up http post
                HttpClient client = new HttpClient( );
                String postUrl = "/o/oauth2/token"; 
                HostConfiguration hf=new HostConfiguration();
                hf.setHost("accounts.google.com"); //problems start here. Anything other than "accounts.google.com" results in an 'unknown host' exception

        PostMethod postData = new PostMethod(postUrl);      
        postData.setHostConfiguration(hf);

                //add post message parameters
        postData.addParameter(URLEncoder.encode("code"), URLEncoder.encode(code));
        postData.addParameter(URLEncoder.encode("client_id"), URLEncoder.encode(clientId));
        postData.addParameter(URLEncoder.encode("client_secret"), URLEncoder.encode(clientSecret));
        postData.addParameter(URLEncoder.encode("redirect_uri"), URLEncoder.encode(redirectUri));
        postData.addParameter(URLEncoder.encode("grant_type"), URLEncoder.encode("authorization_code"));

        client.executeMethod(postData);
        String postResponseb = postData.getResponseBodyAsString( );
        out.println(postResponseb); //print the info to the browser
        postData.releaseConnection( );
            }
    }

リダイレクトメッセージで「https://accounts.google.com」ホストを使用するように求められますが、「accounts.google.com」以外のものをホストとして使用すると、不明なホストの例外が発生します。

事前に助けてくれてありがとう!

4

1 に答える 1

1

メソッドの呼び出し中にプロトコルを渡すことができますhf.setHost("accounts.google.com",-1,"HTTPS");。Java ドキュメントを参照してください。デフォルトのプロトコルは http です。

于 2012-06-14T04:33:52.277 に答える