如何为 GET 方法发送 HTTP 正文纯文本?

iSt*_*rnZ 4 xcode objective-c nsurlrequest ios

我遇到了一个问题,我使用iGDB REST API,它需要使用GET方法为某些端点发送一些纯文本

PostMan没有问题(通过选择“正文”>“原始”并粘贴我的查询),但是当我尝试使用 Objective-C 时,出现一个错误,告诉我“ GET 方法不能有正文”...

邮递员示例

这是我的应用程序中使用的代码

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"MY_URL"]];
[request addValue:@"text/plain" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"GET"];
[request setHTTPBody:[@"sort popularity desc;" dataUsingEncoding:NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)

编辑 02/10/2019

试图在标题中添加每个过滤器不起作用...

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"MY_URL"]];
[request setValue:[[@"id,name,first_release_date,release_dates,cover,platforms" dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0] forHTTPHeaderField:@"fields"];
[request setValue:[[@"popularity desc" dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0] forHTTPHeaderField:@"sort"];
[request setValue:[[@"5" dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0] forHTTPHeaderField:@"limit"];
[request setValue:[[@"0" dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0] forHTTPHeaderField:@"offset"];
Run Code Online (Sandbox Code Playgroud)

提前感谢您的任何答复!

Cri*_*tik 5

根据iOS 13 发行说明,GET 请求不再允许具有正文:

所有带有包含主体的 GET HTTP 方法的 URLSessionTask 实例现在都会产生错误 NSURLErrorDataLengthExceedsMaximum。(46025234)

这使得URLSession更符合HTTP/1.1 RFC

如果请求方法的规范(第 5.1.1 节)不允许在请求中发送实体主体,则消息主体不得包含在请求中。