【问题标题】:objective C NSString stringwithformat of a URL目标 C NSString stringwithformat 的 URL
【发布时间】:2011-09-04 20:07:12
【问题描述】:

我需要我的应用程序向我的服务器发送一个 HTTP 请求,这是链接,但由于某种原因,当我创建一个带有格式的 NSString 字符串时,并不是所有的字符串都被复制到字符串中,

这是我的网址:

http://192.168.50.204:8080/webapi/originate?sofia/internal/408%25192.168.50.204%20'set:effective_caller_id_number=722772408,bridge:sofia/gateway/012smile/<PHONENUMBER>@212.199.220.21'%20inline%200545890183%200545890183

如果我把它放在我的浏览器中,它就可以正常工作。

这是代码:

self.feedURLString = [NSString stringWithFormat:@"http://192.168.50.204:8080/webapi/originate?sofia/internal/%@%25192.168.50.204%20'set:effective_caller_id_number=722772%@,bridge:sofia/gateway/012smile/%@@212.199.220.21'%20inline%20%@%20%@",extention,extention,PhoneNumber,PhoneNumber, PhoneNumber];

请记住,URL 中有一些 %20 和 %25,可能会导致问题...

我在 NSLog 中得到的字符串是:

feedURLString = http://192.168.50.204:8080/webapi/originate?sofia/internal/408220'set:effective_caller_id_number=722772408,bridge:sofia/gateway/012smile/0545890183@212.199.220.21' 93610576nline2@2@

【问题讨论】:

    标签: objective-c nsstring nsurlrequest


    【解决方案1】:

    从字符串中删除 %20 和 %25 然后使用 NSString 中的 stringByAddingPercentEscapesUsingEncoding 命令

    string = [sURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    

    【讨论】:

      【解决方案2】:

      你说得对,%20 几乎肯定会造成问题。

      字符串中任何你想在结果中包含一个实际的 % 符号的地方,你都应该写 %%。

      有些人使用的另一种选择是将 %s 保留原样,但使用 stringByReplacingOccurrencesOfString:withString: 进行替换。

      例如:

      NSString *str = @"http://{HOST}/{USER}/blah";
      str = [str stringByReplacingOccurrencesOfString:"{HOST}" withString:hostname];
      str = [str stringByReplacingOccurrencesOfString:"{USER}" withString:username];
      

      【讨论】:

        【解决方案3】:

        尝试用普通字符而不是 %20 和 %25 编写 url,然后添加变量,当你有完整的 url 字符串时使用

        [feedURLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEndocing];
        

        编辑:对不起,我猜答案很明显:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-14
          • 1970-01-01
          相关资源
          最近更新 更多