我正在尝试在我的应用中创建图片上传功能。
在这段代码的最后一行,我收到一条错误,上面写着“期待:”
我应该怎么做才能解决它?
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data;
boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"rn--%@rn",boundary]
dataUsingEncoding:NSUTF8StringEncoding]];
以下是我收到错误的地方:
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data;
name="userfile"; filename="ipodfile.jpg"rn"] dataUsingEncoding:NSUTF8StringEncoding]];
答案 0 :(得分:0)
您需要转义字符串中的引号。
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data;name=\"userfile\"; filename=\"ipodfile.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
答案 1 :(得分:0)
替换此
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data;
name="userfile"; filename="ipodfile.jpg"rn"] dataUsingEncoding:NSUTF8StringEncoding]];
使用
[body appendData:[@"Content-Disposition: form-data; name=\"userfile\"; filename=\"ipodfile.jpg\"r\n" dataUsingEncoding:NSUTF8StringEncoding]];
答案 2 :(得分:0)
使用单引号代替内部双引号
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name='userfile'; filename='ipodfile.jpg'rn"] dataUsingEncoding:NSUTF8StringEncoding]];
答案 3 :(得分:0)
"
(双引号)是 objective-c 中的转义字符(甚至在c和c ++中),转义字符是包含的字符组合反斜杠(“\
”)后跟一些字符。它们被称为转义序列,因为反斜杠会导致编译器解释字符的正常方式为“转义”。
这么简单,要在objective-c中定义一个字符串,你需要@""
内的字符串,如果字符串中已经有"
(双引号)符号,那该怎么办呢?在这种情况下,编译器将"
(双引号)符号(实际上是字符串的一部分)作为字符串的结尾。所以在这种情况下我们需要告诉编译器逃避该字符。因此,在转义字符之前的原因我们使用反斜杠(“\
”)。
在您的情况下,您可以使用反斜杠(“\
”)作为...
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"ipodfile.jpg\"rn"] dataUsingEncoding:NSUTF8StringEncoding]];