0

我想将文件异步发送到服务器;但是,似乎当我确实将请求发送到服务器时。服务器给了我一个 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];

}

谢谢!

4

1 回答 1

0

您正在设置一个委托,但您提到您没有实现任何这些方法。ASIFormDataRequestextends ASIHTTPResquest,因此继承了它的所有属性。

您必须ASIHTTPRequestDelegate至少实现在 中标明的方法

- (void)requestFinished:(ASIHTTPRequest *)request;

- (void)requestFailed:(ASIHTTPRequest *)request;

也许其他取决于您的需要。

您的上传可能仍在工作(您可以检查您的服务器吗?),但是,当您异步发送请求时,您无法确定请求是成功还是失败;现在你只是sedning和忘记。

中声明的所有方法ASIHTTPRequestDelegate.h都标记为可选,这就是调试器、编译器和运行时没有抱怨的原因。

于 2013-03-04T19:25:35.440 回答