错误在图像上载功能中说“预期:”

时间:2013-12-19 06:27:36

标签: ios iphone objective-c

我正在尝试在我的应用中创建图片上传功能。

在这段代码的最后一行,我收到一条错误,上面写着“期待:”

我应该怎么做才能解决它?

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]];

4 个答案:

答案 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]];