2013-05-26 50 views
1

我必须连接到多个URL,它是某种“喜欢”按钮,并且有多个可以“喜欢”的文章。Android - 通过发送cookie连接到URL

我首先必须登录,登录时我收到一个cookie,并且在连接到url时必须发送cookie。

这是饼干我得到:

[版本:0] [名称:_website_session] [值:BAh7C0kiD3Nlc3Npb25faWQGOgZFVEkiJTEyZTE2ZmE3ZWI4M2Y4YmU5ZmY4OGMzYjMxYzdhNTZiBjsAVEkiEG1vYmlsZV92aWV3BjsARkZJIgpnZW9pcAY7AEZ7DToRY291bnRyeV9jb2RlIgdubDoSY291bnRyeV9jb2RlMyIITkxEOhFjb3VudHJ5X25hbWUiEE5ldGhlcmxhbmRzOgtyZWdpb24iBzAxOhByZWdpb25fbmFtZSIMRHJlbnRoZToJY2l0eSIKRW1tZW46DWxhdGl0dWRlZhY1Mi43OTI0OTk1NDIyMzYzMzoObG9uZ2l0dWRlZhY2Ljg5NDcwMDA1MDM1NDAwNEkiC2xvY2FsZQY7AEZJIgdlbgY7AEZJIgx1c2VyX2lkBjsARmkDjg4rSSIKdG9rZW4GOwBGSSI3b1RXZ2dzdVhaUWtTRGNNSHhYbmtNYWd0aXNYSklsWlBjdmd5U2l6d2VwT2hPb3NuclcGOwBU - 857b2e9d3823a16d31761b1677e6d00603ee25ba] [域名:.website.nu] [路径:/] [届满:孙军02 13:04:16 CEST 2013]]

如何通过发送cookie来连接到URL?

* 编辑 *

我用这个方法:

 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

为什么它只是一次工作而烦恼?你可以多次创建cookie,然后用这个新的cookie执行()? – octoback

+0

将一个按钮形象为Facebook“like”按钮。你可以“喜欢”多个项目。每次你点击“like”按钮,它就会通过发送cookie来连接到URL。这就是为什么它需要多次执行@antitrust – GromDroid

+0

确定,但每次都创建一个httpclient,httpresponse。不是可行的吗? – octoback

回答

0

使用您绑定cookie的HttpContext,然后​​和HttpClient在参数中传递此上下文。一些在此flavor

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:您发送与执行的响应()之前,你clearCookie为您的网址或那种方式。与钛,语法将是

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,但你有想法。

+0

你可以看看我的编辑? @antitrust – GromDroid