//
// Http.m
// test
//
// Created by robin on 14-4-4.
// Copyright (c) 2014年 robin. All rights reserved.
//
#import "Http.h"
@implementation Http
// 参数URL加密
+(NSString*)urlEscape:(NSString *)unencodedString {
NSString *s = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
kCFStringEncodingUTF8));
return s;
}
// 把参数放到URL尾部
+(NSString*)addQueryStringToUrl:(NSString *)url params:(NSDictionary *)params {
NSMutableString *urlWithQuerystring = [[NSMutableString alloc] initWithString:url];
// 转换参数
if (params) {
for(id key in params) {
NSString *sKey = [key description];
NSString *sVal = [[params objectForKey:key] description];
// 需要添加 add ?k=v or &k=v ?
if ([urlWithQuerystring rangeOfString:@"?"].location == NSNotFound) {
[urlWithQuerystring appendFormat:@"?%@=%@", [Http urlEscape:sKey], [Http urlEscape:sVal]];
} else {
[urlWithQuerystring appendFormat:@"&%@=%@", [Http urlEscape:sKey], [Http urlEscape:sVal]];
}
}
}
return urlWithQuerystring;
}
@endFor Example:
NSDictionary *params = @{@"params1":@"params", @"params2":@"paramswww"};
NSString *urlWithQuerystring = [self addQueryStringToUrl:@"https://www.baidu.com/login" params:params];
本文介绍如何在Objective-C中从NSDictionary对象构建URL查询参数,以用于HTTP请求。
496

被折叠的 条评论
为什么被折叠?



