在 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 很好,我不小心删除了我之前的评论(在尝试编辑时)。我看到你回复了。对不起。您将参数放在请求正文中,对吗?您的 AFNetworkingAFHTTPSessionManager
的 requestSerializer
和 responseSerializer
看起来如何?
【参考方案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 响应