使用ASIFormDataRequest从iPhone发布请求无效

时间:2011-05-04 08:48:43

标签: iphone ruby-on-rails-3 http-post asihttprequest

这里有新手到Rails / iOS。我有一个rails博客应用程序。我正在尝试使用带有ASIFormDataRequest的HTTP POST方法从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)。知道为什么吗?

编辑我发现star.png需要有完整的文件地址。现在POST工作正常,但名称或图像都没有保存到数据库中。将创建一个包含空名称和图像的新帖子。知道为什么吗?

2 个答案:

答案 0 :(得分:1)

为什么你在这里使用localhost?

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

使用您的网络服务器IP而不是localhost

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

答案 1 :(得分:1)

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”是图像的路径。完整的道路。