我想将一个文件异步发送到服务器;但是,似乎我将请求发送到服务器。服务器给我一个HTTP代码:200,这没关系,但没有文件上传到服务器。
然而,当我把它留给同步时......它完美无缺。怪异..
非常感谢任何想法,
- (void) sendCSVtoServer: ( Session * ) archive_session {
NSLog(@"file name: %@", [archive_session getFile]);
NSURL *url = [NSURL URLWithString:@"http://xx.x.xxx.xxx:3000/xxx/xxxxxxxx"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue: [archive_session getEmail] forKey:@"email"];
[request addFile: [archive_session getFile] forKey:@"csv"];
[request setDelegate:self];
[request startSynchronous];
}
谢谢!
答案 0 :(得分:0)
您正在设置委托,但是您提到您没有实现任何这些方法。 ASIFormDataRequest
扩展ASIHTTPResquest
,因此会继承其所有属性。
您必须在ASIHTTPRequestDelegate
中实施十进制的方法,至少
- (void)requestFinished:(ASIHTTPRequest *)request;
和
- (void)requestFailed:(ASIHTTPRequest *)request;
也许其他人视您的需要而定。
您的上传可能仍然有效(您可以查看服务器吗?),但是,当您异步发送请求时,您无法确定请求是成功还是失败;现在你只是在劝说和遗忘。
ASIHTTPRequestDelegate.h
中声明的所有方法都被标记为可选,这就是调试器,编译器和运行时没有抱怨的原因。