如何使用App Engine url fetch服务处理像Web浏览器这样的cookie?

时间:2012-11-27 16:03:56

标签: java google-app-engine cookies

我已经看到很多关于在App Engine上使用带有url fetch的cookie的问题,但很多人做错了,而且在Java App Engine上没有确认为工作的解决方案。

我想做的就是:

  1. 提出一个请求
  2. 从该请求中获取Cookie。
  3. 使用这些Cookie发出第二个请求。
  4. 它有多难?

    这在开发服务器上很容易实现,因为开发服务器会自动在请求之间复制cookie - 事实上,不可能阻止它执行此操作。但真正的App Engine urlfetch服务执行此操作。

1 个答案:

答案 0 :(得分:2)

使用

new HTTPRequest(url, HTTPMethod.GET, fetchOptions.doNotFollowRedirects())

创建请求对象。

由于某种原因,doNotFollowRedirects() 必不可少。我不明白为什么。

然后从响应中获取set-cookie标头(名称为equalsIgnoreCase("Set-Cookie")的标头)并创建相应的Cookie标头 - 在每个Set-Cookie标头中的分号后修剪所有内容,如果有的话一个,然后将所有cookie与;连接在一起作为分隔符。

这不能正确处理到期等,但这对于大多数用途来说应该足够了。