关于使用NSURLConnection发送get请求响应为nil的情况

来源:互联网 发布:深圳软件开发年龄 编辑:程序博客网 时间:2024/05/21 11:05

1.在公司上网环境中用无线联网+无公司代理的方式:

NSString *results = [[NSString alloc] initWithBytes:[receivedData bytes] length:[receivedData length] encoding:NSUTF8StringEncoding];

返回的result是nil。但是测试eceivedData length 确不是0,证明确实从服务器返回了数据,只是编码转换失败。

改用:

NSString *results = [[NSString alloc] initWithData:receivedData encoding:CFStringConvertEncodingT*****StringEncoding(kCFStringEncodingGB_18030_2000)];

result就有值了,不为nil了。

2.在公司上网环境中用网线联网+公司代理的方式:

上面两个方法用后者不好使,前者好使。正好相反。

我猜测是不是我用的NSURLConnection发起的get请求,不会像webview那样智能的处理字符集。用网线联网+公司代理的方式,公司代理给我响应的是GB2312格式的。我用UTF-8转码就不好使。如果用无线联网+无公司代理的方式,对端服务器给我响应的是UTF-8编码的,用GB2312转码也不好使。


原创粉丝点击