Resetting basic authentication credentials with AFNetworking

早过忘川 提交于 2019-12-09 05:34:34

问题


I am writing a REST client (with AFNetworking) and need the ability to trigger the creation of a new session within a single instance of an application.

In other words, I would like to:
1 - Authenticate with server
2 - Do some REST calls
3 - Simulate "Log out"
4 - Re-authenticate with server
5 - Do some more REST calls

AFNetworking is great with making that initial authentication and REST calls, but I can't figure out how I would clear the session and "reset" the connection within the same instance.

When I used ASIHTTP, I just did:
[ASIHTTPRequest clearSession];

Is there a way to do something similar with AFNetworking?


回答1:


Use AFHTTPClient (see the API client in the example project).

Credentials can be set with -setAuthorizationHeaderWithUsername:password:. Each request created from that HTTP client will have an Authorization HTTP header, kind of like a browser session.

When the user logs out, or you want to clear credentials, do -clearAuthorizationHeader.




回答2:


Even simpler.

[request setHTTPShouldHandleCookies:NO];



回答3:


Rest calls as far as I know are not session based. Meaning you can't simulate an authentication and log-out session in a particular call. What I think you can do is to Authenticate for every call made to the end point. So for every end point(Method), you authenticate the caller. I think that's the bets you can do in a restful system.



来源:https://stackoverflow.com/questions/9038801/resetting-basic-authentication-credentials-with-afnetworking

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!