我需要我的应用程序向我的服务器发送HTTP请求,这是链接,但由于某种原因,当我创建一个NSString stringwithformat并不是所有字符串都被复制到字符串中时,
这是我的网址:
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/0545890183@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];
请记住,网址中有一些%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 @
答案 0 :(得分:2)
从字符串中删除%20和%25 然后使用NSString
中的stringByAddingPercentEscapesUsingEncoding命令string = [sURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
答案 1 :(得分:0)
你是对的,%20几乎肯定会引起问题。
字符串中您想要在结果中使用实际%符号的任何位置,您应该编写%%。
有些人使用的另一个选择是保留%s,但使用stringByReplacingOccurrencesOfString:withString:来进行替换。
例如:
NSString *str = @"http://{HOST}/{USER}/blah";
str = [str stringByReplacingOccurrencesOfString:"{HOST}" withString:hostname];
str = [str stringByReplacingOccurrencesOfString:"{USER}" withString:username];
答案 2 :(得分:0)
尝试使用普通字符而不是%20和%25编写网址,然后添加变量,当您拥有完整的网址字符串时
[feedURLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEndocing];
编辑:抱歉双重,我想anwser很明显:)