我知道这是一个奇怪的问题,但我在 RKResponse(来自 RestKit)中有一个字符串,它正在吃我在它之后添加的任何内容。
我想知道导致这种行为的“response.bodyAsString”内部是什么。
这是代码:
NSLog(@"--- refreshFriendsList callback ---");
NSLog(@"Status Code: %i",response.statusCode);
NSLog(@"Response Contents: 54321%@12345",response.bodyAsString);
NSLog(@"Response Contents length: %@",response.contentLength);
if ([response isOK])
{
NSLog(@"RESPONSE OK");
NSLog(@"length %lu",(unsigned long)response.bodyAsString.length);
NSLog(@"trimmed lenght %lu",(unsigned long)[response.bodyAsString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length);
NSLog(@"IS IT EMPTY? %@",[response.bodyAsString isEqualToString:@""]?@"YES":@"NO");
.
.
.
这是输出:
2013-09-04 15:26:31.958 AppName[5658:707] --- refreshFriendsList callback ---
2013-09-04 15:26:31.965 AppName[5658:707] Status Code: 200
2013-09-04 15:26:31.980 AppName[5658:707] Response Contents: 54321
2013-09-04 15:26:31.986 AppName[5658:707] Response Contents length: 4
2013-09-04 15:26:31.990 AppName[5658:707] RESPONSE OK
2013-09-04 15:26:31.997 AppName[5658:707] length 4
2013-09-04 15:26:32.002 AppName[5658:707] trimmed lenght 4
2013-09-04 15:26:32.014 AppName[5658:707] IS IT EMPTY? NO
如您所见,后来的 12345 消失了,我不知道为什么,也不知道为什么字符串的长度是 4。
服务器应该返回一个空字符串,它是从没有找到结果创建的
JSONObject friendsAndFamilyInfo = manager.getFriendsAndFamilyList(userID);
if (friendsAndFamilyInfo != null)
{
resp.getWriter().print(friendsAndFamilyInfo.toString());
resp.setStatus(200);
} else
{
resp.getWriter().print("ERROR");
resp.setStatus(500);
}
更新:
这是我将响应打印为原始数据时得到的结果:
2013-09-04 15:47:59.930 AppName[5701:707] Response as Data: <007b007d>
这就是 restkit 将数据转换为字符串的方式:
- (NSString *)bodyAsString {
return [[[NSString alloc] initWithData:self.body encoding:[self bodyEncoding]] autorelease];
}