面试题答案
一键面试设置请求头(headers)
在AFNetworking中设置请求头,一般在构建请求任务前进行设置。以AFHTTPSessionManager
为例:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
// 设置单个请求头
[manager.requestSerializer setValue:@"value" forHTTPHeaderField:@"headerField"];
// 设置多个请求头
NSDictionary *headers = @{@"headerField1": @"value1", @"headerField2": @"value2"};
[manager.requestSerializer setValue:headers];
常用请求方式及应用场景
- GET请求
- 描述:从服务器获取数据。一般用于获取资源列表、详情等不需要改变服务器状态的操作。
- 应用场景:如获取文章列表、用户信息展示等。例如在新闻APP中获取新闻列表,向服务器请求
https://example.com/api/news?page=1&limit=10
,通过GET请求获取第一页10条新闻数据。
- POST请求
- 描述:向服务器提交数据,用于创建新资源等操作。通常提交的数据放在请求体中。
- 应用场景:如用户注册、登录,提交表单数据等。例如在电商APP中用户下单,将订单信息以POST请求发送到服务器
https://example.com/api/order
,服务器根据接收到的数据创建新订单。
- PUT请求
- 描述:用于更新服务器上的资源。它会替换整个资源,如果只想更新部分字段,一般使用PATCH请求。
- 应用场景:例如更新用户完整信息,向服务器发送
https://example.com/api/user/1
(假设1是用户ID),并在请求体中包含完整的用户新信息,服务器会用新信息替换原有的用户信息。
- DELETE请求
- 描述:用于删除服务器上的资源。
- 应用场景:如删除用户的收藏文章,向服务器发送
https://example.com/api/favorite/article/123
(假设123是文章ID),服务器根据这个请求删除对应的收藏文章记录。
- PATCH请求
- 描述:用于更新服务器上资源的部分字段,与PUT不同,它只更新提供的字段。
- 应用场景:比如只更新用户的昵称,向服务器发送
https://example.com/api/user/1
(用户ID为1),请求体中只包含{"nickname": "newNickname"}
,服务器仅更新用户的昵称字段。