如何使用AFNetworking-2.0进行JSON编码的GET请求?

特拉维斯·格里格斯

我正在尝试使用与本文类似的模式,该模式描述了对RESTful API进行PUT / POST,但对GET进行。

我的原始代码看起来几乎相同,除了我使用了GET:关键字。我很快发现,它不是发送JSON正文,而是通过url编码参数。AFJSONSerializer该类的文档中未提及您必须转到超类文档(AFHTTPSerializer)并通读其属性,在其中可以找到有关HTTPMethodsEncodingParametersInURI的内容默认情况下,该集合将填充HEAD,GET和DELETE。因此,对于这些类型的请求,JSON序列化程序显然会还原为其行为的父类?

因此,我将以下代码放在一起:

AFHTTPSessionManager* manager = [AFHTTPSessionManager manager];
manager.securityPolicy.allowInvalidCertificates = YES;
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet set];
[manager.requestSerializer setAuthorizationHeaderFieldWithUsername: currentUser() password: currentPassword()];
[manager
    GET: @"https://172.16.214.214:44321/trees"
    parameters: [NSDictionary dictionary]
    success:^(NSURLSessionDataTask* task, id responseObject){
        NSLog(@"Response: %@", responseObject);}
    failure:^(NSURLSessionDataTask* task, NSError* error){
        NSLog(@"Error: %@", error);}];

设置的行HTTPMethodsEncodingParametersInURI = [NSSet set]旨在让我也可以像获取GET一样获取JSON编码的参数。不幸的是,当我使用它并在错误控制台中获得以下信息时,在服务器上什么也没看到:

2013-12-10 10:11:14.149 myValve[957:60b] Error: Error Domain=NSURLErrorDomain Code=-1005 "The
network connection was lost." UserInfo=0x17e5d4b0
{NSErrorFailingURLStringKey=https://172.16.214.214:44321/trees,
NSErrorFailingURLKey=https://172.16.214.214:44321/trees, NSLocalizedDescription=The network
connection was lost., NSUnderlyingError=0x17e53240 "The network connection was lost."}

我还缺少什么?

AFNetworking行为背后的原理可能在堆栈溢出问题HTTP HTTP GET with request body中得到最简洁的解释这些答案之一引用了Ray Fielding的话

...换句话说,任何HTTP请求消息都允许包含消息正文,因此必须在解析消息时牢记这一点。但是,GET的服务器语义受到限制,以使主体(如果有的话)对请求没有语义含义。解析要求与方法语义要求分开。

因此,是的,您可以使用GET发送正文,否,这样做永远没有用。

HTTP / 1.1规范定义GET要被包括在所述请求的主体中,以“检索的任何信息(以一个实体的形式)由Request-URI中确定的”和没有考虑的信息。因此,从GET技术上讲,应禁止禁止使用人体,但充其量,这是非标准的。AFNetworking选择不支持它并不完全令人惊讶。

因此,您可能不想将JSON放入GET请求的主体中通常将参数添加到URL。如果要在请求的正文中发送JSON,请执行POST

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用AFHTTPRequestOperation进行AFNetworking 2身份验证

来自分类Dev

如何使用AFNetworking或STHTTPRequest发出SOAP Web服务请求?

来自分类Dev

想要的:使用AFNetworking-2使用基本身份验证的JSON / POST的最新示例

来自分类Dev

如何使用AFNetworking 2批量处理请求?

来自分类Dev

如何使用AFNetworking 2设置HTTP请求?

来自分类Dev

如何以严格的顺序使用AFNetworking 2发送请求?

来自分类Dev

如何使用AFNetworking解析JSON处理布尔值

来自分类Dev

如何使用AFNetworking添加请求标头?

来自分类Dev

如何使用AFNetworking创建JSON数组

来自分类Dev

使用AFNetworking读取JSON Web API 2 InvalidModelStateResult结果

来自分类Dev

使用AFNetworking进行JSON序列化

来自分类Dev

使用NSURLCredential进行AFNetworking

来自分类Dev

使用AFNetworking进行多部分PUT请求

来自分类Dev

使用AFNetworking进行图像缓存

来自分类Dev

afnetworking 3.0迁移:如何使用标头和HTTP正文进行POST

来自分类Dev

如何通过AFNetworking进行GET请求?

来自分类Dev

如何在AFNetworking 2中执行AFHTTPRequestOperation

来自分类Dev

如何使用AFNetworking查看JSON POST的错误?

来自分类Dev

如何使用AFNetworking进行JSON解析

来自分类Dev

如何使用AFNetworking或STHTTPRequest发出SOAP Web服务请求?

来自分类Dev

AFNetworking 2 GET与JSON响应

来自分类Dev

使用AFNetworking 2处理响应

来自分类Dev

如何使用AFNetworking添加请求标头?

来自分类Dev

如何使用AFNetworking 2.5发送XML PUT / POST请求

来自分类Dev

使用JSON的AFNetworking提供objectForKey

来自分类Dev

使用AFNetworking解析JSON文件

来自分类Dev

如何使用AFNetworking通过发布请求在服务器上发送NSData?

来自分类Dev

JSON使用file_get_contents对数组进行编码

来自分类Dev

使用 AFNetworking 解析 JSON 的问题?

Related 相关文章

  1. 1

    使用AFHTTPRequestOperation进行AFNetworking 2身份验证

  2. 2

    如何使用AFNetworking或STHTTPRequest发出SOAP Web服务请求?

  3. 3

    想要的:使用AFNetworking-2使用基本身份验证的JSON / POST的最新示例

  4. 4

    如何使用AFNetworking 2批量处理请求?

  5. 5

    如何使用AFNetworking 2设置HTTP请求?

  6. 6

    如何以严格的顺序使用AFNetworking 2发送请求?

  7. 7

    如何使用AFNetworking解析JSON处理布尔值

  8. 8

    如何使用AFNetworking添加请求标头?

  9. 9

    如何使用AFNetworking创建JSON数组

  10. 10

    使用AFNetworking读取JSON Web API 2 InvalidModelStateResult结果

  11. 11

    使用AFNetworking进行JSON序列化

  12. 12

    使用NSURLCredential进行AFNetworking

  13. 13

    使用AFNetworking进行多部分PUT请求

  14. 14

    使用AFNetworking进行图像缓存

  15. 15

    afnetworking 3.0迁移:如何使用标头和HTTP正文进行POST

  16. 16

    如何通过AFNetworking进行GET请求?

  17. 17

    如何在AFNetworking 2中执行AFHTTPRequestOperation

  18. 18

    如何使用AFNetworking查看JSON POST的错误?

  19. 19

    如何使用AFNetworking进行JSON解析

  20. 20

    如何使用AFNetworking或STHTTPRequest发出SOAP Web服务请求?

  21. 21

    AFNetworking 2 GET与JSON响应

  22. 22

    使用AFNetworking 2处理响应

  23. 23

    如何使用AFNetworking添加请求标头?

  24. 24

    如何使用AFNetworking 2.5发送XML PUT / POST请求

  25. 25

    使用JSON的AFNetworking提供objectForKey

  26. 26

    使用AFNetworking解析JSON文件

  27. 27

    如何使用AFNetworking通过发布请求在服务器上发送NSData?

  28. 28

    JSON使用file_get_contents对数组进行编码

  29. 29

    使用 AFNetworking 解析 JSON 的问题?

热门标签

归档