我正在使用Rails服务器,我有一个使用Restkit的应用程序来访问服务器。
我的服务器使用会话cookie登录。当我使用我的帐户信息发布/会话时,我登录并且我可以从服务器访问私有区域。 问题是,每当我想使用该应用程序时,我都不想登录。我不知道restkit如何使用cookie,但是当我的会话“开放”时,我不需要担心它。但现在我想使用我的cookie访问私人区域。
当我登录时:
'POST /sessions HTTP/1.1
Host: localhost:3000
Accept-Encoding: gzip, deflate
Content-Type: application/json
Content-Length: 74
Accept-Language: en-us
Accept: application/json
Connection: keep-alive
User-Agent: TicketIn/1.0 CFNetwork/609.1.4 Darwin/11.4.2
{"session":{"email":"***","password":"***"}}'
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Ua-Compatible: IE=Edge
Etag: "7215ee9c7d9dc229d2921a40e899ec5f"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 41f0c482720d6cdcedb64071a6ebf9e7
X-Runtime: 0.222790
Server: WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20)
Date: Wed, 26 Jun 2013 13:23:28 GMT
Content-Length: 1
Connection: Keep-Alive
Set-Cookie: _vitrine_session=*session*; path=/; HttpOnly
当我尝试访问私人区域时:
GET /ingressos HTTP/1.1
Host: localhost:3000
If-None-Match: "310fd8ebf912d0633caa05a91ce56fcc"
Accept-Encoding: gzip, deflate
Accept: application/json
Cookie:
_vitrine_session=*session*
Content-Length: 0
Accept-Language: en-us
Connection: keep-alive
User-Agent: TicketIn/1.0 CFNetwork/609.1.4 Darwin/11.4.2
但是当我首先尝试访问私有区域时没有登录:
GET /ingressos HTTP/1.1
Host: localhost:3000
Accept-Encoding: gzip, deflate
Accept: application/json
Content-Length: 0
Connection: keep-alive
Accept-Language: en-us
User-Agent: TicketIn/1.0 CFNetwork/609.1.4 Darwin/11.4.2
那么如何在我的http请求中包含cookie?
谢谢!
答案 0 :(得分:1)
RestKit构建于标准URL加载系统之上。因此,您可以通过设置NSHTTPCookieStorage
的内容(如果您想挖掘,更改setHTTPShouldHandleCookies
上的NSMutableURLRequest
属性)完全控制使用的Cookie。
因此,您可以根据需要在NSHTTPCookieStorage
添加和删除Cookie。