首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >目标C发布多部分/数据文本错误

目标C发布多部分/数据文本错误
EN

Stack Overflow用户
提问于 2013-06-07 18:12:22
回答 1查看 160关注 0票数 0

我在使用http Post request时遇到了问题,具体情况如下:

我必须发送一个带有文本和Img代码的post请求:

代码语言:javascript
运行
复制
NSMutableURLRequest *eventRequest = [NSMutableURLRequest requestWithURL:_urlRequest cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:500];
 NSString *boundary = @"---------------------------14737809831466499882746641449";

//Set header Http POST
[eventRequest setHTTPMethod:@"POST"];
[eventRequest setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]forHTTPHeaderField:@"Content-Type"];

NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"parameter1\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[self postParametre] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


//Image upload
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: immage/jpg \r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; filename=\"immagine.jpg\""dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:data];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

// Close boundary
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// set request body
[eventRequest setHTTPBody:body];

NSString* string = [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding];
NSLog(@"Stampa Dati inviati: %@", string);

// Http header Content-Lenght
[eventRequest setValue:[NSString stringWithFormat:@"%i",[data length]] forHTTPHeaderField:@"Content-Length"];

self.theConnection=[[NSURLConnection alloc] initWithRequest:eventRequest delegate:self];

if (self.theConnection) {
    self.receivedData = [[NSMutableData data] retain];
} else {
    // Inform the user that the connection failed.
    NSLog(@"Connection Problem");
}

可以看到我在正文的第一部分设置了"Content-Type"的多部分/表单数据,我设置了文本,在第二部分设置了图像,但图像上传正确但没有“扩展名”,在第一部分我设置了要发送的文本,但文本显然没有设置或格式没有读取到服务器。

[self postParametre]方法返回格式为"key1=value1&key2=value2&key3=value3“的NSMutableString

有人能帮我吗?

致以问候。

EN

回答 1

Stack Overflow用户

发布于 2013-06-07 20:22:06

您可以使用https://github.com/AFNetworking/AFNetworking

AFHTTPClient有一个方法multipartFormRequestWithMethod。这将上传图像在多部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16981620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档