Android - 通过发送cookie连接到URL

时间:2013-05-26 11:11:04

标签: android

我必须连接到多个网址,它是某种“喜欢”按钮,并且有多篇文章可以“喜欢”。

我首先必须登录,在登录时我会收到一个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字符串

这有效,但没有其他方法适合我。 我正在寻找另一种方法的原因是因为这种方法只能使用一次..当我在彼此之后多次尝试这种方法时,它只能在第一次使用..

任何人都可以帮助我吗?

1 个答案:

答案 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的命令,但你明白了。