1

Googleアカウントにログインしようとしています。HTTP-Foxを使用してすべてのパラメーターを取得するために、以前の投稿を読みました。そこで、隠しものも含めてすべて追加しました。

package com.businessLogic;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class Browser {
 public static void main (String [] arg ){

    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost("https://accounts.google.com/ServiceLogin");
    try {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
        nameValuePairs.add(new BasicNameValuePair("service", "lso"));
        nameValuePairs.add(new BasicNameValuePair("passive", "1209600"));
        nameValuePairs.add(new BasicNameValuePair("continue", "https://accounts.google.com/o/oauth2/auth?....."));
        nameValuePairs.add(new BasicNameValuePair("ltmpl", "embedded"));
        nameValuePairs.add(new BasicNameValuePair("shdf", "CoMBCxIRdGhpcmR...."));
        nameValuePairs.add(new BasicNameValuePair("scc", "1"));
        nameValuePairs.add(new BasicNameValuePair("dsh", "-2602464068824153107"));
        nameValuePairs.add(new BasicNameValuePair("GALX", "qqYU2P_8USM"));
        nameValuePairs.add(new BasicNameValuePair("pstMsg", "1"));
        nameValuePairs.add(new BasicNameValuePair("dnConn", ""));
        nameValuePairs.add(new BasicNameValuePair("checkConnection", "youtube:816:1"));
        nameValuePairs.add(new BasicNameValuePair("checkedDomains", "youtube"));
        nameValuePairs.add(new BasicNameValuePair("timeStmp", ""));
        nameValuePairs.add(new BasicNameValuePair("secTok", ""));
        nameValuePairs.add(new BasicNameValuePair("_utf8", "â"));
        nameValuePairs.add(new BasicNameValuePair("bgresponse", "!A0LfAt2vXHmPiURq..."));
        nameValuePairs.add(new BasicNameValuePair("Email", "XXX"));
        nameValuePairs.add(new BasicNameValuePair("Passwd", "XXX"));
        nameValuePairs.add(new BasicNameValuePair("signIn", "Anmelden"));

        post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = client.execute(post);
        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        String line = "";
        while ((line = rd.readLine()) != null) {
            System.out.println(line);
        }   
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

応答:

<html><head><title>Google Accounts</title>
</head>
<body dir="ltr" bgcolor="#ffffff" text="#000000" link="#0000cc" vlink="#551a8b" alink="#ff0000">
<div class="topbar aligns" style="font-size:smaller; margin-bottom:0 15px 1px 15px; white-space:nowrap;">
        <a>
              Google Home
</a>
|

<a>Sign in</a></div>
<div class="header margins" style="height: 40px; margin: 13px 15px 9px 15px;"><a href="https://accounts.google.com/"><img src="/googleaccountslogo/en.gif" border="0" class="floats-normal" alt="Google"></a>
</div>
<div style="clear:both;"></div>
<div class="body"><p>Your browser&#39;s cookie functionality is turned off. Please turn it on.
[<a href="http://www.google.com/support/accounts/bin/answer.py?answer=61416&amp;hl=en&amp;ctx=ch_ServiceLogin&amp;p=lso" target="_blank">?</a>]</p>
&copy;2012 Google

</body></html>

ログインに失敗しました。「サインイン」オプションも利用できます。これらの回答/Cookieの処理方法がわかりません。httpclientの一部であった古いAPIを誰もが使用しているため、有用な解決策を見つけることができませんorg.apache.common.*

だから私を助けてくれませんか?

4

1 に答える 1

0

httpFox は、FireFox でのリクエストの Cookie を表示します。これらの Cookie を確認すると、いくつかの手がかりが得られるはずです。明らかに、その URL が応答するためには、これらの Cookie の 1 つ以上がそこにある必要があります。

http クライアントには、リクエスト/POST で渡される Cookie を指定する方法があります。

于 2012-12-28T16:04:09.957 に答える