我需要在GET请求中传递带有时区偏移的时间戳,例如,
2009-05-04T11:22:00+01:00
这看起来像是接收PHP脚本的两个参数"2009-05-04T11:22:00“和"01:00”(我无法控制)。
NSURL不编码加符号,但如果我使用字符串创建NSURL
2009-05-04T11:22:00%2B01:00
我最终得到的url包含:
2009-05-04T11:22:00%252B01:00
有什么想法,我可以如何保存我的编码加符号,或只是简单,防止NSURL编码任何东西?
发布于 2010-02-15 22:00:28
对我起作用的是执行UTF8转换,然后用%2B替换+符号:
NSString *urlString =
[NSString stringWithFormat:@"%@/iphone/push/create?pn[token]=%@&pn[send_at]=%@",
kHTTPURL, appDelegate.deviceAPNToken, [dateTimeToUse description]];
urlString =
[[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];发布于 2013-06-18 05:22:20
字符串应该是URL编码的。
下面是NSString的一个类别,它将有助于:
NSString+Additions.h
@interface NSString (Additions)
- (NSString *)stringByURLEncoding;NSString+Additions.m
#import "NSString+Additions.h"
@implementation NSString (Additions)
- (NSString *)stringByURLEncoding {
return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
}发布于 2009-05-22 16:39:41
对要作为参数包含的文本使用NSString的stringByAddingPercentEscapesUsingEncoding:方法。
顾名思义,该方法将返回一个自动释放的字符串,其中包含接收方的url安全版本。
https://stackoverflow.com/questions/898488
复制相似问题