Ich bin nicht ganz sicher, wie es funktioniert, aber was ich tun muss, ist mit JSON-RPC authentifizieren und dann eine Seite anfordern. Ich habe diesen Code, um herauszufinden, ob der Benutzername und das Passwort richtig ist, aber ich weiß nicht, wie diese Informationen zu verwenden, um eine Seite zu beantragen ..Html, auth. Cookies erhalten
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
}
}
Es kommt wieder mit Erfolg und mit den richtigen Daten, sondern Ich weiß nicht, wie man es benutzt.
Viele dieser Code ist nicht wirklich relevant für das Extrahieren des Cookies aus der Antwort, also sollten Sie das zuerst aufräumen. Wenn Sie nun die for-Schleife beendet haben, sollten Sie in der Regel das Cookie in der sogenannten Variablen haben (normalerweise bedeutet: eine Leerüberprüfung des Cookie-Strings durchführen). Anschließend können Sie eine GET-Anforderung erstellen, eine Kopfzeile mit diesem Cookie festlegen und die erforderliche Webseite abrufen. – Rob
Okay, ich habe das getan, aber wie bekomme ich den Inhalt, den ich gerade angefordert habe? – FabianCook
Können Sie versuchen, Ihre eigentliche Frage zu klären? Was genau versuchen Sie mit den Daten, die von dieser URL abgerufen werden? Versucht, auf eine andere Seite zu gelangen? – robertvoliva