Отправить запрос с iPhone с помощью ASIFormDataRequest не работает - PullRequest
1 голос
/ 04 мая 2011

Новичок в Rails / iOS здесь. У меня есть приложение для блога rails. Я пытаюсь загрузить сообщение из iOS, используя метод HTTP POST с ASIFormDataRequest . Вот код, который называется get:

    NSURL *url=[[NSURL alloc] initWithString:@"http://localhost:3000/posts"];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:@"Ben" forKey:@"name"];

    [request setFile:@"star.png" forKey:@"image"]; 
    [request startSynchronous];  
    NSString *response = [request responseString];
    NSLog(@"response:: %@", response);

Когда я запускаю этот код, ничего не происходит. Мой сервер не связывается. Я получаю ответ :: (ноль). Есть идеи почему?

РЕДАКТИРОВАТЬ Я обнаружил, что star.png должен иметь полный адрес файла. Теперь POST работает нормально, но ни имя, ни изображение не сохраняются в БД. Создается новый пост с пустым именем и изображением. Есть идеи почему?

Ответы [ 2 ]

1 голос
/ 04 мая 2011
NSData *imageData = [NSData dataWithContentsOfFile:imagePath];
NSURL *url=[[NSURL alloc] initWithString:@"http://localhost:3000/posts"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"Ben" forKey:@"name"];

[request setPostValue:imageData forKey:@"image"]; 
[request startSynchronous];

Для «imagePath» это путь к вашему изображению.Полный путь.

1 голос
/ 04 мая 2011

почему вы используете здесь localhost?

NSURL *url=[[NSURL alloc] initWithString:@"http://localhost:3000/posts"];

используйте ip вашего веб-сервера вместо localhost

NSURL *url=[[NSURL alloc] initWithString:@"http://yourservername:3000/posts"];
...