- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Google Protobuf 将序列化类发送到 http 服务器。执行此操作的命令是:message.SerializeToString(&out);
请注意,我们正在序列化为一个字符串。 服务器将完全相同的对象返回给我。
因此,在我的连接:didReceiveData 方法中,我正在获取数据。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
{
if (self.receivingData) {
[self.dataReceived appendData:data];
}
}
在我的 connectionDidFinishLoading 方法中,我认为我需要将 NSMutableData (self.dataReceived) 放入 NSString。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
self.receivingData = NO;
NSLog(@"%@", self.dataReceived);
NSString *data = [[NSString alloc] initWithData:self.dataReceived encoding:NSASCIIStringEncoding]; // Wrong encoding ????
NSMutableDictionary *processedData = [NSMutableDictionary dictionaryWithCapacity:1];
[processedData setObject:data forKey:@"ImageData"];
NSNotificationCenter *processedNote = [NSNotificationCenter defaultCenter];
[processedNote postNotificationName:@"DataReceived" object:nil userInfo:processedData];
}
但我不确定要使用什么编码。当我发送数据时,它看起来像这样:
"\b\x01\x12\x04Lucy\x1a\xd4\xdc;\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\...... (There's more)
当我收到数据时,它看起来像这样:
<08011204 4c756379 1ad4dc3b ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ..... (There's more)
当我用上面的数据(编码 NSASCIIStringEncoding)初始化 NSString 时,我得到这个:
LucyÔÜ;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ....... (There's more)
最终,我需要使用 Google Protobuf 方法从字符串解析数据:message.ParseFromString(data);
我怎么知道要使用哪种编码?
最佳答案
试试这个。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"%@", [response textEncodingName]);
}
关于c++ - NSMutableData 到 NSString - 如何知道用于 HTTP 响应的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24521362/
我正在将一个大文件读入 NSMutableData 对象。 var lBuffer : NSMutableData = try NSMutableData(contentsOfFile: pFileP
我正在我的应用程序中进行 JSON 解析,当我使用 responseData = [NSMutableData data]; 它在 [responseData setLength:0] 上崩溃; -
我在函数中使用下面提到的行 NSMutableData *data = [[NSMutableData alloc] init]; 我很快就调用了这个函数(例如 100 次)。所以我的问题是,最初它
我有一个用于连接 httprequests 的类。我收到“NSMutableData”的内存泄漏,尽管我在连接对象的“didFailWithError”和“connectionDidFinishLoa
我使用下面所示的代码下载了该文件。然后我尝试将 NSMutableData 变量保存到文件中,但是,该文件未创建。我究竟做错了什么?我需要将 NSMutableData 转换为 NSString 吗?
我在使用 NSMutableData 时遇到一个问题。 我定义了一个 NSMutableData *receivedData,并尝试将多个 NSData* 数据复制到 receivedData。我刚刚
我的应用程序从服务器获取一些json数据,并使用NSMUtableData对象存储这些数据。 但是调试器报告以下错误: [NSCFString setLength:]: unrecognized se
我正在尝试从响应中获取数据。 我正在使用NSURLConnectionDelegate,NSURLConnectionDataDelegate。 该项目使用ARC。 @interface MainMe
我正在尝试将图像上传到工作正常的 yFrog,但我只想从响应中获取 URL。当我使用 NSURLConnection 方法时 - (void) connectionDidFinishLoading:(
您好,我正在尝试创建一个我想通过网络发送到服务器的数据包,我几乎已经对数据包进行了排序,但是它缺少一个长度标识符,我需要在我的方法结束时计算它并添加放入数据包。 数据包结构是这样的 前导值标识符 (U
让我开始说吧,我是 iOS/Xcode 编程的新手,所以我什至不知道该问什么。我正在尝试向应用程序添加一个静态库,但我以崩溃告终。库包有一个.h 文件和一个.a 文件。我正在询问有关如何继续解决问题的
我将如何附加这个二进制字符串 111000111000111111000111000111 到包含 png 的 NSMutableData 对象(NSMutableData *dataForPNGFi
这个问题已经有答案了: 已关闭10 年前。
在我的程序中,我有一个 NSMutableData 变量,用于收集来自 http://www.nhara.org/scored_races-2013.htm 的信息。 .大约第三次从网站获取信息后,当
我正在尝试快速将一个字节附加到 NSMutable 数据变量,我正在寻找一种更简单的方法。相关的 Objective-C 代码是: NSMutableData *data = [[NSMutableD
NSMutableData *requestData = (NSMutableData*)[request responseData]; 返回 “[{JSON_STRING}]” 所以我想去掉“[”/
我有一个被多次调用的函数,它创建数据通过 tcp 发送到服务器。我想我在某个地方丢失了数据。 我想知道什么是正确的方法: 在程序开始时使用finalData=[[NSMutableData alloc
我正在尝试通过资源库上传一个大小为 100MB 的视频。但是当我尝试使用 -(NSUInteger)getBytes:(uint8_t *)buffer fromOffset:(long long)o
我使用 NSMutableData 对象来存储表示系列数据的 32 字节结构列表。这些系列可能会被扩展、添加、对齐等。为了节省不必要的对象分配,我尝试将字节扩展并附加到现有对象,而不是分配新对象。 我
我希望能够确定 NSMutableData 实例中的字节数是否等于零。我该怎么做? 最佳答案 简单: if([data length] == 0) { //do something } 其中 da
我是一名优秀的程序员,十分优秀!