Sye*_*vez 5 iphone asihttprequest ios4
我在iphone中使用ASIHttpRequest库,当我尝试在下面的URL上执行GET请求时,我收到此消息并且请求失败,如果他/她遇到此问题或者知道可能的解决方案请任何人请告诉我.其次,如果我将链接粘贴到浏览器中,它可以很好地工作.
[URL]
http://www.rugsale.com/iphone/app/?type=product_listms=id%3D334&ver=1.0&key=kaoud
[错误]
检测到不正确的NSStringEncoding值0x0000.假设NSStringEncodingASCII.将在不久的将来停止这种兼容性映射行为.
Thx提前
问候
Syed Arsalan Pervez www.saplogix.net
如果[asiHttpRequest getResponseString]在返回有效响应并且已设置请求编码(即无法连接到服务器)之前调用,则会发生这种情况.
解决此警告的最简单方法是编辑ASIHTTPRequest类,删除@synthesize responseEncoding并添加一个简单的自定义getter/setter,以便在未设置响应编码时返回默认编码:
- (NSStringEncoding) responseEncoding
{
return responseEncoding || self.defaultResponseEncoding;
}
- (void) setResponseEncoding:(NSStringEncoding)_responseEncoding
{
responseEncoding = _responseEncoding;
}
Run Code Online (Sandbox Code Playgroud)
此getResponseString方法还有一个更具体的解决方法,我认为这是唯一使用编码而不检查值的地方 - 因为编码应该设置为任何非零长度响应:
- (NSString *)responseString
{
NSData *data = [self responseData];
if (!data) {
return nil;
}
// --- INSERT THIS BLOCK ---
// If the 'data' is present but empty, return a simple empty string
if (data.length == 0) {
return @"";
}
//assert(self.responseEncoding); // if you're into runtime asserts, uncomment this
// --- END OF BLOCK TO INSERT ---
return [[[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:[self responseEncoding]] autorelease];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9793 次 |
| 最近记录: |