Html, auth. Getting cookies
-
31-05-2021 - |
سؤال
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
لا تنتمي إلى StackOverflow