ios - 编码 url 字符串后出现问题

标签 ios ios5

我有一些代码可以将 url 发送到远程服务器。如果我不对 url 进行编码,它就可以完美运行。但是,如果我对 url 进行编码,它就不起作用。所以我很确定我对 url 查询字符串进行编码的方式有问题。

这是我的代码:

        // URL TO BE SUBMITTED.
        NSString *urlString = 
        @"http://www.mydomain.com/test.php?";

        // NOW CREATE URL QUERY STRING    
        NSString *unencoded_query_string = 
        @"name=%@&user_id=%@&person_name=%@&person_email=%@&privacy=%@";

// PUT PREVIOUSLY SET VALUES INTO THE QUERY STRING
        NSString *unencoded_url_with_params = 
        [NSString stringWithFormat:unencoded_query_string, business , user_id , name , email , privacy_string]; 

        // ENCODE THE QUERY STRING
        NSString *escapedString = (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                                                      NULL,
                                                                                      (__bridge CFStringRef)unencoded_url_with_params,
                                                                                      NULL,
                                                                                      (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                                                      kCFStringEncodingUTF8);

        // NOW APPEND URL TO QUERY STRING
        NSString *full_encoded_url_string = 
        [urlString  stringByAppendingString: escapedString];

然后我将这个字符串发送到服务器,服务器确实调用了正确的请求文件,但无法读取参数。

有人知道我在这里做错了什么吗?顺便说一下,我正在使用 arc。

谢谢!

最佳答案

我认为您可能想要转义每个参数,而不是整个请求。基本上你想转义出现在你的get变量中的&符号,空格等。您的编码 URL 可能如下所示:

http://www.mydomain.com/test.php?name%3DPeter%20Willsey%26user_id%3DUSERID%26person_name%3DPeter%20Willsey%26person_email%3Dpeter%40test.com%26privacy%3D1

它应该是这样的:

http://www.mydomain.com/test.php?name=Peter%20Willsey&user_id=25&person_name=Peter%20Willsey&person_email=peter%40test.com&privacy=1

关于ios - 编码 url 字符串后出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11692131/

相关文章:

objective-c - 为什么旋转后 UIImageView 的大小会发生变化?

iOS5 无法读取 Riven.bundle 的符号(找不到文件)

iphone - 将应用提交到Appstore时出错

ios - Swift - 从 Firebase 获取数据并将其存储到数组中

iphone - 如何获取 UIFont 实例的字体大小或粗体版本

ios - WebRTC 远程视频在 ios Safari 上保持卡住

iOS 5.1 UIView调用 super ViewController的选择器

ios - 无法设置完成 block swift 2.0 w/SDWebImageCompletionBlock

ios - 使用 Firebase Swift 检索数据错误

objective-c - iOS 寻找新的共享文件