带有文件的Cocoa POST请求

时间:2010-11-24 04:20:59

标签: cocoa post

是否可以从Cocoa中提交文件?我的意思是我在客户端有一个文件,我希望将其上传到我的服务器,就像我在HTML的上传字段中选择它一样。然后,我需要显示服务器在文本字段中发送的响应。

这是否可行,如果可以,我可以在进度条上显示进度吗?我确实有代码发送常规POST请求,但我不知道如何有效地将文件发送到服务器端PHP脚本。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您可以提交如下文件的内容:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"text/xml" forHTTPHeaderField:@"Content-type"];

NSString *xmlString = [NSString stringWithFormat:@"%@"];

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

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

NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

您的PHP脚本提供的响应可由代理检索(所有必须实现,有关详细信息,请参阅 NSURLConnection 文档,有一个示例):

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse*)response
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connectionDidFinishLoading:(NSURLConnection *)connection