gpt4 book ai didi

ios - 如何使用 RestKit 0.20.1 发送 XML 格式的 POST 请求

转载 作者:行者123 更新时间:2023-11-29 03:52:58 25 4
gpt4 key购买 nike

我有一个 iOS 应用程序,它使用 RestKit 0.20.1 从服务器提取数据。此时服务器可以发送JSON格式的数据,但无法接收JSON格式的数据。

这就是我的问题所在。 POST 请求需要 HTTP 正文,并且服务器设置为接收 XML。我已经实现了 RKXMLReaderSerialization 附加组件,因此我可以接收 XML,但我找不到任何当前使用 RestKit 发送 XML 格式的 HTTP 正文的方法。

这个问题“Send post request in XML format using RestKit”是我一直在寻找的问题,但由于 RestKit 的变化,Imran Raheem 的答案现在(据我所知)已经过时了。

我正在使用此方法进行 POST

[[RKObjectManager sharedManager] postObject:nil path:@"/rest/search?ip=255.255.255.0" parameters:search success:nil failure:nil];

这是 RestKit objectManager 关于 postObject 方法的说法

/**
Creates an `RKObjectRequestOperation` with a `POST` request for the given object, and enqueues it to the manager's operation queue.
@param object The object with which to construct the object request operation. If `nil`, then the path must be provided.
@param path The path to be appended to the HTTP client's base URL and used as the request URL. If nil, the request URL will be obtained by consulting the router for a route registered for the given object's class and the `RKRequestMethodPOST` method.
@param parameters The parameters to be reverse merged with the parameterization of the given object and set as the request body.
@param success A block object to be executed when the object request operation finishes successfully. This block has no return value and takes two arguments: the created object request operation and the `RKMappingResult` object created by object mapping the response data of request.
@param failure A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the resonse data. This block has no return value and takes two arguments:, the created request operation and the `NSError` object describing the network or parsing error that occurred.

如果我将 MIMEType 设置为 JSON,则跟踪显示我的 request.body 正在像这样填充 request.body={"Search":"趋势”}

但是,如果我将 MIMEType 设置为 XML,则跟踪会显示 request.body=(null)

这是我用来更改 MIMEType 的行

[RKObjectManager sharedManager].requestSerializationMIMEType = RKMIMETypeJSON;

我对 iOS 和 Objective-C 还很陌生,所以我可能错误地设置了 `postObject' 方法参数中使用的 NSDictionary。这是以防万一......

NSArray *objects =[NSArray arrayWithObjects:@"trending", nil];
NSArray *keys =[NSArray arrayWithObjects: @"Search",nil];
NSDictionary *params = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
self.search=params;

任何帮助将不胜感激!鉴于我是新人,片段特别有帮助!

哦,顺便说一句,如果有人可以向我指出接受 JSON 输入的 REST 方法,我很乐意将其传递给我的服务器人员,这样我就可以完全避免使用 XML。

最佳答案

正如有关此主题的其他帖子中所担心和建议的那样,RestKit 0.20.1 版本不支持编写 XML。这是我与 Blake Watters 就该主题进行的对话的链接。

https://github.com/RestKit/RestKit/issues/1430#issuecomment-19150316

我从来没有弄清楚为什么当 MIMEType 设置为 XML 时 request.body= (null) 。

服务器管理员已同意将其设置为接收 JSON。这就是我计划解决这个问题的方法。

关于ios - 如何使用 RestKit 0.20.1 发送 XML 格式的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com