Rails/iOS新手。我有一个rails博客应用程序。我正在尝试使用ASIFormDataRequest的HTTPPOST方法从iOS上传一篇帖子。这是被称为的代码
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);
当我运行此代码时,不会发生任何事情。没有联系到我的服务器。我得到响应::(null(。知道为什么吗?
EDIT我发现star.png需要有完整的文件地址。现在POST工作正常,但名称和图像都没有保存到数据库中。将创建一个名称和图像为空的新帖子。知道为什么吗?
为什么在这里使用localhost?
NSURL *url=[[NSURL alloc] initWithString:@"http://localhost:3000/posts"];
使用您的网络服务器ip而不是localhost
NSURL *url=[[NSURL alloc] initWithString:@"http://yourservername:3000/posts"];
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",它是指向您的图像的路径。完整的路径。