如何通过Restkit保存和使用cookiea-objective-c
我使用的是Rails服务器,我有一个带有Restkit的应用程序来访问服务器 我的服务器使用会话cookie登录。当我使用我的帐户信息发布/会话时,我已登录,可以从服务器访问隐私区。 问题是,每当我想使用这个应用程序时,我都不想登录。我不知道restkit如何处理cookies,但是当我的会话处于“打开”状态时,我不需要担心它。但现在我想使用我的cookie访问私人区域 当我登录时:如何通过Restkit保存和使用cookiea-objective-c,objective-c,session,cookies,restkit,Objective C,Session,Cookies,Restkit,我使用的是Rails服务器,我有一个带有Restkit的应用程序来访问服务器 我的服务器使用会话cookie登录。当我使用我的帐户信息发布/会话时,我已登录,可以从服务器访问隐私区。 问题是,每当我想使用这个应用程序时,我都不想登录。我不知道restkit如何处理cookies,但是当我的会话处于“打开”状态时,我不需要担心它。但现在我想使用我的cookie访问私人区域 当我登录时: 'POST /sessions HTTP/1.1 Host: localhost:3000 Accept-E
'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":"***"}}'
当我试图进入私人区域时:
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
谢谢 RestKit构建在标准URL加载系统之上。因此,通过设置
nshtpcookieStorage
的内容,您可以完全控制使用哪些Cookie(如果需要挖掘,请更改NSMutableURLRequest
上的sethttpshoulldhandleCookies
属性)
因此,您可以根据需要从NSHTTPCookieStorage添加和删除cookie。RestKit构建在标准URL加载系统之上。因此,通过设置
nshtpcookieStorage
的内容,您可以完全控制使用哪些Cookie(如果需要挖掘,请更改NSMutableURLRequest
上的sethttpshoulldhandleCookies
属性)
因此,您可以在需要时从
NSHTTPCookieStorage
添加和删除cookie。那么您有一个cookie要添加,以便由RestKit发送?或者您希望RestKit在您登录后使用现有的cookie(应该是自动的)?因此,当我登录时,我希望存储此cookie以供以后使用。例如,若要不再登录服务器,只需使用my session cookie访问专用区域。您是否有一个要添加的cookie,以便由RestKit发送?或者您希望RestKit在您登录后使用现有的cookie(应该是自动的)?因此,当我登录时,我希望存储此cookie以供以后使用。例如,为了不再登录服务器,只需使用我的会话cookie访问专用区域。我尝试过这样做,但是,即使保存了cookie,当我在专用区域中使用tcpmonitor执行http请求(例如GET)时,我的头也没有我设置的cookie。而且域是完全匹配的?嗯,这是一个很好的观点。我认为我没有正确配置所有内容,因为我不知道如何设置cookie字段的所有信息。看到了吗?您可能想创建一个新问题来询问您的cookie设置。这一切都是关于initWithProperties:
可能……好吧,我将分析我的代码,然后按照您的建议做另一个问题。只有一件事。。。。我的域应该与主机匹配吗?还是请求的整个路径?谢谢,我会接受你的回答!嗯,我尝试了这个方法,但是,即使保存了cookie,当我在私有区域中使用tcpmonitor执行http请求(例如GET)时,我的头也没有我设置的cookie。并且域是完全匹配的?这是一个好的观点。我认为我没有正确配置所有内容,因为我不知道如何设置cookie字段的所有信息。看到了吗?您可能想创建一个新问题来询问您的cookie设置。这一切都是关于initWithProperties:
可能……好吧,我将分析我的代码,然后按照您的建议做另一个问题。只有一件事。。。。我的域应该与主机匹配吗?还是请求的整个路径?谢谢,我会接受你的回答!
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