Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Http将参数发布到url don';t发送特殊字符“+&引用;在ObjectCxcode中_Ios_Objective C_Iphone_Xcode6 - Fatal编程技术网

Ios Http将参数发布到url don';t发送特殊字符“+&引用;在ObjectCxcode中

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

我已经创建了一个应用程序,它向aspx服务器发送两个POST参数,并将数据保存在数据库中。 这是一个Iphone应用程序

代码如下:

        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?