在 AFNetworking 3 GET 请求中删除查询末尾的问号

Posted

技术标签:

【中文标题】在 AFNetworking 3 GET 请求中删除查询末尾的问号【英文标题】:Remove question mark at the end of the query in AFNetworking 3 GET request 【发布时间】:2016-10-17 07:06:24 【问题描述】:

我有这样的请求网址:

https://myserver.com/api/news/?offset=0?

在参数 dict 我这样传递它:

@ @"offset" : @(0)

为什么我的请求末尾会出现问号,我该如何消除它?

请求后我记录了它的完整信息,如下所示:

  NSLog(@"%@ | URL - %@?%@", sessionDataTaskGETReq.originalRequest.HTTPMethod,
                  sessionDataTaskGETReq.originalRequest.URL,
                  [[NSString alloc] initWithData:sessionDataTaskGETReq.originalRequest.HTTPBody encoding:NSUTF8StringEncoding]);

在这里,我在末尾看到了这个额外的问号。

我的请求和响应序列化程序如下所示:

  AFJSONRequestSerializer *requestSerializer = [AFJSONRequestSerializer serializer];
    [requestSerializer setValue:@"application/json, multipart/form-data, @text/html" forHTTPHeaderField:@"Accept"];

    AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer
                                                       serializerWithReadingOptions:NSJSONReadingAllowFragments];;
    responseSerializer.acceptableContentTypes = [NSSet setWithArray:@[@"multipart/form-data", @"text/html", @"text/json", @"application/json"]];

【问题讨论】:

你说的是 XCode 上的问号吗?如果是这种情况,请向我们提供您获得的任何其他信息。 @Orlando,“在 Xcode 中”是什么意思?我更新了我的问题 @Orlando,是的。 server 服务器收到这个问号 这对您的服务器来说不是什么大问题,应该不会导致任何类型的错误。 @dalejin 很好,我不小心删除了我之前的评论(在尝试编辑时)。我看到你回复了。对不起。您将参数放在请求正文中,对吗?您的 AFNetworking AFHTTPSessionManagerrequestSerializerresponseSerializer 看起来如何? 【参考方案1】:
NSLog(@"%@ | URL - %@%@", sessionDataTaskGETReq.originalRequest.HTTPMethod,
                  sessionDataTaskGETReq.originalRequest.URL,
                  [[NSString alloc] initWithData:sessionDataTaskGETReq.originalRequest.HTTPBody encoding:NSUTF8StringEncoding]);

只需删除您在 NSLog 中添加的问号

【讨论】:

@dalejin 你确定服务器收到了你所说的问号吗? 你说的网址是这样的:myserver.com/api/news/?offset=0?那么它已经有一个问号,或者,您可以从 NSLog 打印结果以查看确切的问题正确的 url 必须是 myserver.com/api/news/?offset=0 或 myserver.com/api/news/?offset=0& 如果有更多属性 @Orlando 哦......我很愚蠢,没有任何“?”在查询结束时。它只在 NSLog 中 @daleijn 总是使用 NSLog 进行调试!那我想巴萨姆得到了你的答案,对吧?

以上是关于在 AFNetworking 3 GET 请求中删除查询末尾的问号的主要内容,如果未能解决你的问题,请参考以下文章

来自 GET 请求的 AFNetworking 3.0 404 响应

AFNetworking网络请求的get和post步骤

iOS开发之AFNetworking 3.0.4使用

使用 AFNetworking 缓存不需要的 GET 请求

AFNetworking 在 GET 请求的 JSON 参数中发送数组

AFNetworking 2.0 参数字典不适用于 GET 请求