سؤال

I'm not quite sure how it works but what I need to do is authenticate with JSON-RPC and then request a page. I have this code to find out if the username and password is right but I don't know how to use this information to request a page..

    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
        }
    } 

It comes back with successful and with all the right data but I dont know how to use it.

هل كانت مفيدة؟

المحلول

This was actually really simple now that I look at it, once I have verified that I was authenticated I could use the same HttpClient (that holds the cookies) to request other files and push files to the web server using MultipartEntity

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top