首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送数据- NSMutableURLRequest

发送数据- NSMutableURLRequest
EN

Stack Overflow用户
提问于 2010-12-16 05:37:38
回答 2查看 474关注 0票数 0

我正在通过PHP脚本发送一封电子邮件。使用NSMutableURLRequest可以很好地工作,但我也想在电子邮件中附加一个图像。

下面是我使用的代码:

代码语言:javascript
复制
    NSMutableURLRequest *request = 
    [[NSMutableURLRequest alloc] initWithURL:
    [NSURL URLWithString:@"http://example.com/email.php"]];

    [request setHTTPMethod:@"POST"];

    NSString*subject = [NSString stringWithFormat:@"Images from %@",[[UIDevice currentDevice] name]];   

    NSString*to = [[NSUserDefaults standardUserDefaults] objectForKey:@"PreferredPrinterEPrint"];   

    NSString *postString = [NSString stringWithFormat:@"to=%@&message=%@&subject=%@",to,@"hi",subject];

    [request setValue:[NSString 
                       stringWithFormat:@"%d", [postString length]] 
    forHTTPHeaderField:@"Content-length"];

    [request setHTTPBody:[postString 
                          dataUsingEncoding:NSUTF8StringEncoding]];

    [[NSURLConnection alloc] initWithRequest:request delegate:self];

我看过一篇here文章,描述了发送图片,但我不知道如何将两者结合起来。有没有人能帮我个忙?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-16 05:40:58

有一个名为ASIFormDataRequest的类,它使得发布数据变得非常容易,并且包含了用一行附加文件的能力。我强烈推荐它。

票数 1
EN

Stack Overflow用户

发布于 2014-01-13 16:23:09

发送JPEG图像的示例:

代码语言:javascript
复制
NSMutableURLRequest *request =  [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://example.com/email.php"]];

[request setHTTPMethod:@"POST"];

NSString *boundary = @"Some string as you like";
NSString *value = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request setValue:value forHTTPHeaderField:@"Content-Type"];

NSString *subject = [NSString stringWithFormat:@"Images from %@", [[UIDevice currentDevice] name]];   
NSString *to = [[NSUserDefaults standardUserDefaults] objectForKey:@"PreferredPrinterEPrint"];   

NSData *fileData = [NSData dataWithContentsOfFile:<file path>]

NSMutableString *postDataString = @"".mutableCopy;
[postDataString appendFormat:@"--%@\r\n", boundary];
[postDataString appendFormat:@"Content-Disposition: form-data; name=\"to\"\r\n"];
[postDataString appendFormat:@"\r\n%@\r\n", to];
[postDataString appendFormat:@"--%@\r\n", boundary];
[postDataString appendFormat:@"Content-Disposition: form-data; name=\"message\"\r\n"];
[postDataString appendFormat:@"\r\n%@\r\n", @"hi"];
[postDataString appendFormat:@"--%@\r\n", boundary];
[postDataString appendFormat:@"Content-Disposition: form-data; name=\"subject\"\r\n"];
[postDataString appendFormat:@"\r\n%@\r\n", subject];
[postDataString appendFormat:@"--%@\r\n", boundary];
[postDataString appendFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", <file name>, <file name>];
[postDataString appendFormat:@"Content-Type: image/jpg\r\n"];
[postDataString appendFormat:@"Content-Transfer-Encoding: binary\r\n\r\n"];

NSMutableData *postData = [postDataString dataUsingEncoding:NSUTF8StringEncoding].mutableCopy;

[postData appendData:fileData];

[postData appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

[request setValue:[NSString stringWithFormat:@"%d", postDataString.length]  forHTTPHeaderField:@"Content-length"];
[request setHTTPBody:postData];

[[NSURLConnection alloc] initWithRequest:request delegate:self];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4455179

复制
相关文章

相似问题

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