如何使用 Restkit 发送表单数据类型请求

Posted

技术标签:

【中文标题】如何使用 Restkit 发送表单数据类型请求【英文标题】:How to send the form data type request using Restkit 【发布时间】:2016-05-01 16:41:55 【问题描述】:

数据格式:


    "firstName": "arun",
    "lastName": "kumar",
    "contactInfo": 
        "email": "ak7896@gmail.com"
    ,
    "password": "abcdefg"

以上是我的注册请求结构。除了data 键,我还有一个用于profilepic 图像的键,名为“main”。目前,我正在创建的请求字典中使用 RestKit,如下所示:

[RKObjectManager sharedManager] postObject:self path:self.path_api parameters:@"data":@                                                                       @"firstname":firstname, @"lastname":lastname, @"contactInfo": @@"email":emailID, @"password":pass
                                                                            @"main": @@"profileImage": profilePic? profilePic : nil

但它会抛出错误 500。我认为我在这里创建的字典不正确。

任何建议都会对我很有帮助。

提前致谢

【问题讨论】:

您还没有告诉我们实际发送了什么或服务器期望什么,new 需要知道这两者,以及服务器在错误中返回的任何其他详细信息 URL: myURL 状态码: 500, headers Connection = close; “内容长度”= 22; “内容类型”=“文本/html;字符集=utf-8”;日期 =“星期日,2016 年 5 月 1 日 16:54:55 GMT”;服务器 = "Apache/2.4.7 (Ubuntu)"; Vary = "接受编码,用户代理"; “X-Content-Type-Options”= nosniff; “X-Powered-By”=快递; , NSLocalizedDescription=(200-299) 中的预期状态码,得到 500 如何使用restkit创建带有表单数据的上述请求结构,即如何创建像我上面的请求结构一样的多表单请求。 您的问题显示的是 JSON,而不是表单 数据 "firstName": "arun", "lastName": "kumar", "contactInfo" : "email": "ak7896@gmail.com","password": "abcdefg " main *注意 - 上面的输入是表单数据格式,其中“数据”和“主”是键。 【参考方案1】:

您的字典似乎格式不正确,应该是这样的

[[RKObjectManager sharedManager] postObject:self path:self.path_api parameters:@@"data":@@"firstname":firstname, @"lastname":lastname, @"contactInfo": @@"email":emailID, @"password":pass, @"main": @@"profileImage": profilePic? profilePic : nil];

如果不需要数据键,应该是

[[RKObjectManager sharedManager] postObject:self path:self.path_api parameters:@@@"firstname":firstname, @"lastname":lastname, @"contactInfo": @@"email":emailID, @"password":pass, @"main": @@"profileImage": profilePic? profilePic : nil];

【讨论】:

我的请求如下所示: request.body : @ @"name":@@"firstname":firstname, @"lastname":lastname, @"contactInfo": @ @"email":emailID, @"password":pass 但在服务器端,它需要以下形式的数据: request.body.data : @ @"name":@@"firstname":firstname, @" lastname":lastname, @"contactInfo": @@"email":emailID, @"password":pass 现在使用表单数据我不知道如何构造这个请求。 那么你应该使用这个方法发送表单数据multipartFormRequestWithObject:method:path:parameters:constructingBodyWithBlock 我目前使用的是相同的,但需要将请求正文作为 request.body.data 发送,其中数据是表单数据字典之一的关键。 你检查过 github 上的文档吗?检查此链接github.com/RestKit/… 已经有任何表单数据在正文中发送,您不需要将对象添加到正文键中

以上是关于如何使用 Restkit 发送表单数据类型请求的主要内容,如果未能解决你的问题,请参考以下文章

如何过早取消 RestKit 中的请求并调用“didFailWithError”

使用 RestKit 以 XML 格式发送 post 请求

如何在邮递员的同一请求中发送多部分/表单数据和嵌套 json?

如何打印 Restkit (IOS) 发送的正文

Restkit,使用 loadObjectsAtResourcePath 发送帖子数据

使用 RestKit 和 RKObjectManager 时如何添加一些默认参数?