Html,auth。获取cookie

时间:2012-04-14 01:30:48

标签: android html json authentication json-rpc

我不太确定它是如何工作的,但我需要做的是使用JSON-RPC进行身份验证然后请求页面。我有这个代码,以确定用户名和密码是否正确,但我不知道如何使用此信息来请求页面..

    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 个答案:

答案 0 :(得分:1)

这实际上非常简单,我查看它,一旦我确认我已经过身份验证我可以使用相同的HttpClient(包含cookie)来请求其他文件并使用MultipartEntity将文件推送到Web服务器