我必须连接到多个网址,它是某种“喜欢”按钮,并且有多篇文章可以“喜欢”。
我首先必须登录,在登录时我会收到一个cookie,我必须在连接到网址时发送cookie。
这是我得到的cookie:
[[版本:0] [名:_website_session] [值:BAh7C0kiD3Nlc3Npb25faWQGOgZFVEkiJTEyZTE2ZmE3ZWI4M2Y4YmU5ZmY4OGMzYjMxYzdhNTZiBjsAVEkiEG1vYmlsZV92aWV3BjsARkZJIgpnZW9pcAY7AEZ7DToRY291bnRyeV9jb2RlIgdubDoSY291bnRyeV9jb2RlMyIITkxEOhFjb3VudHJ5X25hbWUiEE5ldGhlcmxhbmRzOgtyZWdpb24iBzAxOhByZWdpb25fbmFtZSIMRHJlbnRoZToJY2l0eSIKRW1tZW46DWxhdGl0dWRlZhY1Mi43OTI0OTk1NDIyMzYzMzoObG9uZ2l0dWRlZhY2Ljg5NDcwMDA1MDM1NDAwNEkiC2xvY2FsZQY7AEZJIgdlbgY7AEZJIgx1c2VyX2lkBjsARmkDjg4rSSIKdG9rZW4GOwBGSSI3b1RXZ2dzdVhaUWtTRGNNSHhYbmtNYWd0aXNYSklsWlBjdmd5U2l6d2VwT2hPb3NuclcGOwBU - 857b2e9d3823a16d31761b1677e6d00603ee25ba] [域:.website.nu] [路径:/] [届满:太阳6月2日13时04分16秒CEST 2013]
如何通过发送Cookie连接到网址?
*的 修改 *
我使用这种方法:
second_client = new DefaultHttpClient();
String getURL = "http://website.nu/look/hype" + hype_id;
HttpGet get = new HttpGet(getURL);
HttpResponse responseGet = second_client.execute(get, localContext);
localContext是我的cookie字符串
这有效,但没有其他方法适合我。 我正在寻找另一种方法的原因是因为这种方法只能使用一次..当我在彼此之后多次尝试这种方法时,它只能在第一次使用..
任何人都可以帮助我吗?
答案 0 :(得分:0)
使用绑定Cookie的HttpContext
,然后execute()
HttpClient
在参数中传递此上下文。这种味道的东西
HttpClient httpClient = new DefaultHttpClient();
CookieStore cookieStore = new BasicCookieStore();
Cookie cookie = BasicClientCookie("name", "value");
cookieStore.addCookie(cookie);
HttpContext localContext = new BasicHttpContext();
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
HttpGet httpGet = new HttpGet("myUrl");
HttpResponse response = httpClient.execute(httpGet, localContext);
更详细说明in this thread。
修改强>
一个想法reading this:在您使用execute()发送响应之前,您可以通过这种方式清除网址。使用钛,语法将是
var loader = Titanium.Network.createHTTPClient();
loader.open("GET",base_url + url);
loader.onload = function() {
// process response
}
loader.clearCookies(base_url); // THE FIX.
loader.setRequestHeader('Cookie',Titanium.App.Properties.getString("cookies"));
loader.send();
无法找到Android的命令,但你明白了。