我不太确定它是如何工作的,但我需要做的是使用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
}
}
它带来了成功和所有正确的数据,但我不知道如何使用它。
答案 0 :(得分:1)
这实际上非常简单,我查看它,一旦我确认我已经过身份验证我可以使用相同的HttpClient(包含cookie)来请求其他文件并使用MultipartEntity将文件推送到Web服务器