ASIFormDataRequest: невозможно отправить файл на сервер с помощью асинхронного запроса
Я хотел бы отправить файл асинхронно на сервер; однако, похоже, что когда я отправляю запрос на сервер. Сервер дает мне HTTP-код: 200, который в порядке, но файл не загружается на сервер.
Однако, когда я оставляю это синхронно... это работает отлично. Weird..
Благодарим за любую идею,
- (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];
}
Спасибо!
1 ответ
Вы устанавливаете делегата, но упоминаете, что не реализовали ни один из этих методов. ASIFormDataRequest
продолжается ASIHTTPResquest
и, следовательно, наследует все свои свойства.
Вам нужно будет реализовать методы decalred в ASIHTTPRequestDelegate
, по крайней мере
- (void)requestFinished:(ASIHTTPRequest *)request;
а также
- (void)requestFailed:(ASIHTTPRequest *)request;
Может быть, другие в зависимости от ваших потребностей.
Возможно, ваша загрузка все еще работает (вы можете проверить свой сервер?), Но, когда вы отправляете запрос асинхронно, у вас нет никакого способа определить, был ли запрос успешным или неудачным; Прямо сейчас вы просто седнете и забываете.
Все методы объявлены в ASIHTTPRequestDelegate.h
помечены как необязательные, поэтому отладчик, компилятор и среда выполнения не жалуются.