• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - GET 请求使用了太多参数 - iOS

[复制链接]
菜鸟教程小白 发表于 2022-12-13 05:45:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试在 NSMutableURLRequest 中为 GET 请求加载 URL,如下所示:

 NSString *serverAddress =  [NSString stringWithFormat"http://test.us.to:8080/api/offers?altId=%@&provider=%@&otherId=%@&tenantId=%@&createdAt=%@&otherOfferId=%@&postId=%@&pageId=%@&sourceUrl=%@&name=%@&description=%@&text=%@&category=%@&caption=%@&startTime=%@&expirationTime=%@&minPurchase=%@&numPurchases=%@&value=%@&percent=%@&count=%@&currency=%@&terms=%@&campaignId=%@&partnerId=%@&tenantIdAtPartner=%@&issuerName=%@&claimLimit=%@&onePerUser=%@&emailTemplateFile=%@",@"test",@"Facebook",@"",@"test",@"null",@"test",@"",@"",@"http://test.us.to/offers/harvester_summer13.html",@"Harvester",@"Harvester 2for1 TakeAway",@"Enjoy!",@"voucher",@"Harvester 2for1 TakeAway",[NSNumber numberWithInt:0],@"test",[NSNumber numberWithInt:0],[NSNumber numberWithInt:0],@"1000",[NSNumber numberWithInt:0],[NSNumber numberWithInt:0],@"GBP",@"",[NSNumber numberWithInt:1259],@"null" ,@"null" ,@"null",[NSNumber numberWithInt:100],[NSNumber numberWithBool:false],@"templates/test.vm"];

 NSURL *url = [NSURL URLWithString:[serverAddress urlEncodeUsingEncoding:NSUTF8StringEncoding]];

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                       cachePolicy:NSURLRequestReloadRevalidatingCacheData timeoutInterval:15.0];

 NSString *authStr = [NSString stringWithFormat"%@:%@", @"testuser", @"testpwd"];
 NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
 NSString *authValue = [NSString stringWithFormat"Basic %@", [authData base64EncodedStringWithOptions:0]];
 [request setValue:authValue forHTTPHeaderField"Authorization"];



 [request setHTTPMethod: @"GET"];

 NSError *requestError;
 NSURLResponse *urlResponse = nil;

 NSData *response1 = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&requestError];

NSLog(@"输出数据%@",response1);

我想我使用 url 字符串加载了太多参数。有没有更好的方法来为 GET 请求传递参数? response1 的当前输出为空



Best Answer-推荐答案


在我看来,问题在于您正在使用某种编码方法对整个 url 进行编码,但如果每个参数包含某些字符,您实际上只需要单独编码。例如:

NSString *serverAddress = @"http://test.us.to:8080/api/offers";

NSString *altIdParameter = [@"Escape?This?String?" urlEncodeUsingEncoding:NSUTF8StringEncoding];
NSString *aUrlParameter = [@"http://test.us.to/offers/harvester_summer13.html" urlEncodeUsingEncoding:NSUTF8StringEncoding];

NSString *getRequestUrl = [NSString stringWithFormat:%@?altId=%@&urlParam=%@", serverAddress, altIdParameter, aUrlParameter];

NSURL *url = [NSURL URLWithString:getRequestUrl];

关于ios - GET 请求使用了太多参数 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20665349/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap