1

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

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

这是我得到的饼干:

[[version: 0][name: _website_session][value: BAh7C0kiD3Nlc3Npb25faWQGOgZFVEkiJTEyZTE2ZmE3ZWI4M2Y4YmU5ZmY4OGMzYjMxYzdhNTZiBjsAVEkiEG1vYmlsZV92aWV3BjsARkZJIgpnZW9pcAY7AEZ7DToRY291bnRyeV9jb2RlIgdubDoSY291bnRyeV9jb2RlMyIITkxEOhFjb3VudHJ5X25hbWUiEE5ldGhlcmxhbmRzOgtyZWdpb24iBzAxOhByZWdpb25fbmFtZSIMRHJlbnRoZToJY2l0eSIKRW1tZW46DWxhdGl0dWRlZhY1Mi43OTI0OTk1NDIyMzYzMzoObG9uZ2l0dWRlZhY2Ljg5NDcwMDA1MDM1NDAwNEkiC2xvY2FsZQY7AEZJIgdlbgY7AEZJIgx1c2VyX2lkBjsARmkDjg4rSSIKdG9rZW4GOwBGSSI3b1RXZ2dzdVhaUWtTRGNNSHhYbmtNYWd0aXNYSklsWlBjdmd5U2l6d2VwT2hPb3NuclcGOwBU--857b2e9d3823a16d31761b1677e6d00603ee25ba][domain: .website.nu][path: /][expiry: Sun Jun 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 字符串

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

谁能帮我?

4

1 回答 1

0

使用HttpContext您将 cookie 绑定到的 a,然后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);

在这个线程中有更多的阐述。

编辑

阅读此内容的一个想法:在您使用 execute() 发送响应之前,您以一种或另一种方式为您的 url 清除 Cookie。使用钛,语法将是

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

于 2013-05-26T11:20:58.760 回答