2012-04-14 11 views
0

私はそれがどのように機能するのかよく分かりませんが、私がしなければならないことはJSON-RPCで認証してからページをリクエストすることです。私は、ユーザー名とパスワードが正しいかどうかを調べるために、このコードを持っているが、私はページを要求するために、この情報を使用する方法がわからない...Html、auth。クッキーを取得する

List<Cookie> cook; 
    public void postData(String method, Object ... params) throws JSONException { 
     // Create a new HttpClient and Post Header 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http://www.examp;e.com/json-rpc/"); 

     try { 
      // Add your data 

      String methodandp = "{id:3, method:" + method + ", params:[" + params[0].toString()+ ", " + params[1].toString() + "]}"; 

      StringEntity a = new StringEntity(methodandp); 
      httppost.setEntity(a); 
      Log.i("ClientActivity: request", httppost.getMethod().toString()); 
      Log.i("ClientActivity: request", nameValuePairs.toString()); 


      // Execute HTTP Post Request 
      HttpResponse response = httpclient.execute(httppost); 


      Header[] head = response.getAllHeaders(); 

      Log.i("ClientActivity", response.getStatusLine().toString()); 
      String responseString = EntityUtils.toString(response.getEntity()); 
      responseString = responseString.trim(); 
      JSONObject jsonResponse = new JSONObject(responseString); 
      Log.i("ClientActivity", jsonResponse.toString()); 
      String cookie = ""; 

      for(int i = 0; i < head.length; i++){ 
       Log.i("ClientActivity: response", head[i].toString()); 
       if(head[i].toString().contains("Set-Cookie")){ 
        cookie = (head[i].toString()).replace("Set-Cookie: ", ""); 
        cook = ((AbstractHttpClient) httpclient).getCookieStore().getCookies(); 
        if (cook.isEmpty()) { 
         System.out.println("None"); 
        } else { 
         for (int x = 0; x < cook.size(); x++) { 
          Log.i("ClientActivity", "-" + cook.get(x).toString()); 
         } 
        } 
        Log.i("ClientActivity: Cookie", cookie); 
       } 
      } 
     } catch (ClientProtocolException e) { 
      // TODO Auto-generated catch block 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
     } 
    } 

それは成功したと、すべての権利データに戻ってくるが、私はそれを使う方法を知らない。

+1

このコードは、レスポンスからクッキーを抽出するのにはあまり関係ありませんので、最初にクリーンアップしてください。これで、forループが終了した場合、通常、変数にあるクッキーを(通常はクッキー文字列の空のチェックを実行する)ことが必要です。次に、GETリクエストを作成し、このCookieを含むヘッダーを設定し、必要なWebページを取得できます。 – Rob

+0

さて、私はそれをしましたが、今私はちょうど私が要求したコンテンツをどのように取得するのですか? – FabianCook

+0

実際の質問を明確にすることはできますか?そのURLから取得したデータを使って何をしようとしていますか?別のページに転送しようとしていますか? – robertvoliva

答えて

1

これは、私が認証されたことを確認したら、実際にはとても簡単なので、MultipartEntityを使用して他のファイルを要求し、Webサーバーにファイルをプッシュするために同じHttpClient(Cookieを保持する)を使うことができました

関連する問題