MST
星途 面试题库

面试题:Objective-C中AFNetworking网络层封装基础

在Objective-C使用AFNetworking进行网络层封装时,简述如何设置请求头(headers),并说明AFNetworking中常用的请求方式有哪些,每种方式在实际项目中的应用场景是什么?
50.1万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

设置请求头(headers)

在AFNetworking中设置请求头,一般在构建请求任务前进行设置。以AFHTTPSessionManager为例:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
// 设置单个请求头
[manager.requestSerializer setValue:@"value" forHTTPHeaderField:@"headerField"];
// 设置多个请求头
NSDictionary *headers = @{@"headerField1": @"value1", @"headerField2": @"value2"};
[manager.requestSerializer setValue:headers];

常用请求方式及应用场景

  1. GET请求
    • 描述:从服务器获取数据。一般用于获取资源列表、详情等不需要改变服务器状态的操作。
    • 应用场景:如获取文章列表、用户信息展示等。例如在新闻APP中获取新闻列表,向服务器请求https://example.com/api/news?page=1&limit=10,通过GET请求获取第一页10条新闻数据。
  2. POST请求
    • 描述:向服务器提交数据,用于创建新资源等操作。通常提交的数据放在请求体中。
    • 应用场景:如用户注册、登录,提交表单数据等。例如在电商APP中用户下单,将订单信息以POST请求发送到服务器https://example.com/api/order,服务器根据接收到的数据创建新订单。
  3. PUT请求
    • 描述:用于更新服务器上的资源。它会替换整个资源,如果只想更新部分字段,一般使用PATCH请求。
    • 应用场景:例如更新用户完整信息,向服务器发送https://example.com/api/user/1(假设1是用户ID),并在请求体中包含完整的用户新信息,服务器会用新信息替换原有的用户信息。
  4. DELETE请求
    • 描述:用于删除服务器上的资源。
    • 应用场景:如删除用户的收藏文章,向服务器发送https://example.com/api/favorite/article/123(假设123是文章ID),服务器根据这个请求删除对应的收藏文章记录。
  5. PATCH请求
    • 描述:用于更新服务器上资源的部分字段,与PUT不同,它只更新提供的字段。
    • 应用场景:比如只更新用户的昵称,向服务器发送https://example.com/api/user/1(用户ID为1),请求体中只包含{"nickname": "newNickname"},服务器仅更新用户的昵称字段。