Вы хотели бы использовать NSURLConnection с NSMutableURLRequest, что-то вроде этого:
NSMutableURLRequest *theRequest=[[NSMutableURLRequest alloc] init];
[theRequest addValue:@"attachment;filename=\"file2.gif\"" forHTTPHeaderField:@"Content-disposition"];
[theRequest addValue:@"image/gif" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:@"binary" forHTTPHeaderField:@"Content-Transfer-Encoding"];
[theRequest setHttpBody:myBodyNSDataObject];
// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
// Create the NSMutableData that will hold
// the received data
// receivedData is declared as a method instance elsewhere
receivedData=[[NSMutableData data] retain];
} else {
// inform the user that the download could not be made
}
Вы можете изменить или установить заголовки, используя метод NSMutableURLRequest:
- (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field
Ответом будет то, с чем сервер вернется. Вы можете проверить документацию Apple для остальных методов делегата, которые нужно реализовать, чтобы получить тело ответа обратно. У вас должен быть объект NSData, представляющий содержимое файла, который вы хотите загрузить готовым. Делать то же самое с использованием FTP немного сложнее, но это подойдет для размещения тела файла. Вы хотите убедиться, что ваш объект NSData настроен как тело сообщения HTTP, так что вы устанавливаете заголовки как:
[theRequest addValue:@"attachment;filename=\"file2.gif\"" forHTTPHeaderField:@"Content-disposition"];
[theRequest addValue:@"image/gif" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:@"binary" forHTTPHeaderField:@"Content-Transfer-Encoding"];
И тогда вы должны добавить тело. На стороне сервера вы можете получить имя файла и байты, составляющие файл.
Это не совсем тот код, который вы должны использовать, но он должен дать вам хорошее представление о том, как действовать.