Ios Http将参数发布到url don';t发送特殊字符“+&引用;在ObjectCxcode中
我已经创建了一个应用程序,它向aspx服务器发送两个POST参数,并将数据保存在数据库中。 这是一个Iphone应用程序 代码如下:Ios Http将参数发布到url don';t发送特殊字符“+&引用;在ObjectCxcode中,ios,objective-c,iphone,xcode6,Ios,Objective C,Iphone,Xcode6,我已经创建了一个应用程序,它向aspx服务器发送两个POST参数,并将数据保存在数据库中。 这是一个Iphone应用程序 代码如下: NSString *post = [NSString stringWithFormat:@"name=%@&number=%@", name,number]; NSString *capturedpost = [post stringByAddingPercentEscapesUsingE
NSString *post = [NSString stringWithFormat:@"name=%@&number=%@",
name,number];
NSString *capturedpost = [post
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *postData = [capturedpost dataUsingEncoding:NSUTF8StringEncoding];
//NSString *postLength = [NSString stringWithFormat:@"%d", [postData
length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http:/www.myurl.aspx"]];
[request setHTTPMethod:@"POST"];
//[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
//[request setValue:@"application/x-www-form-urlencoded"
forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse *requestResponse;
NSData *requestHandler = [NSURLConnection sendSynchronousRequest:request
returningResponse:&requestResponse error:nil];
NSString *requestReply = [[NSString alloc] initWithBytes:[requestHandler
bytes] length:[requestHandler length] encoding:NSASCIIStringEncoding];
NSLog(@"requestReply: %@", requestReply);
NSData *returnData = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil error:nil];
但在服务器上,包含电话号码(如“+393333…”)的字符串“number”将不带“+”的号码保存在db中。
我该怎么办?
服务器端工作正常,因为Android上做相同请求的同一个应用程序工作完美 好的,多亏了“holex”,我成功地将URL编码为:
NSString * encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)post,
NULL,
(CFStringRef)@"+",
kCFStringEncodingUTF8 ));
并且“+”正确保存在db中 好的,多亏了“holex”,我成功地将URL编码为:
NSString * encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)post,
NULL,
(CFStringRef)@"+",
kCFStringEncodingUTF8 ));
并且“+”正确保存在db中 好的,多亏了“holex”,我成功地将URL编码为:
NSString * encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)post,
NULL,
(CFStringRef)@"+",
kCFStringEncodingUTF8 ));
并且“+”正确保存在db中 好的,多亏了“holex”,我成功地将URL编码为:
NSString * encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)post,
NULL,
(CFStringRef)@"+",
kCFStringEncodingUTF8 ));
并且“+”正确保存在db中 通常,您会将POST请求的参数放在请求体中,而不是像put请求那样放在URL上。我不确定您在这里寻找的是什么。你有什么问题?是否要保存不带
+
的号码?然后删除它,然后再发布。。。如果要使用+
保存它,则需要在将+
发布为%2B
之前正确编码URL。我要使用“+”保存它。如何将其编码为%2B?您通常会将用于发布请求的参数放在请求正文中,而不是像put请求那样放在URL上。我不确定您在这里要查找什么。你有什么问题?是否要保存不带+
的号码?然后删除它,然后再发布。。。如果要使用+
保存它,则需要在将+
发布为%2B
之前正确编码URL。我要使用“+”保存它。如何将其编码为%2B?您通常会将用于发布请求的参数放在请求正文中,而不是像put请求那样放在URL上。我不确定您在这里要查找什么。你有什么问题?是否要保存不带+
的号码?然后删除它,然后再发布。。。如果要使用+
保存它,则需要在将+
发布为%2B
之前正确编码URL。我要使用“+”保存它。如何将其编码为%2B?您通常会将用于发布请求的参数放在请求正文中,而不是像put请求那样放在URL上。我不确定您在这里要查找什么。你有什么问题?是否要保存不带+
的号码?然后删除它,然后再发布。。。如果要使用+
保存它,则需要在将+
发布为%2B
之前正确编码URL。我要使用“+”保存它。如何将其编码为%2B?