Eye*_*all 24 cocoa-touch ios afnetworking afnetworking-2
我正在尝试从我的iOS应用程序向RESTful Django Web服务发送HTTP DELETE请求.我使用AFNetworking 2.0(2.4).
在分析了AFHTTPREquestOperation
我的API调用的成功块后,我发现请求的主体是零.参数URL在URL中编码和发送.
<AFHTTPRequestOperation: 0x10c587940,
state: isFinished,
cancelled: NO
request: <NSMutableURLRequest: 0x10c521ab0> {
URL: https://anURL.com/connections?data%5Bconnections%5D%5B%5D%5Bid%5D=106 },
response: <NSHTTPURLResponse: 0x10c5c7590> {
URL: anURL.com/
connections?data%5Bconnections%5D%5B%5D%5Bid%5D=106
}
{ status code: 200, headers {
Connection = "Keep-Alive";
"Content-Type" = "application/json";
Date = "Tue, 05 Aug 2014 14:07:53 GMT";
"Keep-Alive" = "timeout=5, max=100";
Server = "Apache/2.4.7 (Ubuntu)";
"Transfer-Encoding" = Identity;
} }>
Run Code Online (Sandbox Code Playgroud)
现在我想知道是否可以在请求正文中发送参数,就像使用HTTP POST而不是在URL中发送它们一样.那可能吗?
如何使用AFNetworking做到这一点?
我如何发送atm:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager DELETE:host_url parameters:params success:success failure:failure];
Run Code Online (Sandbox Code Playgroud)
我想发送的身体(它在上面的"params"参数中有什么):
{
"data": {
"connections": [
{
"id": 92
},
{
"id": 91
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
f3n*_*1kc 60
有同样的问题.由于问题仍然存在,将在此处发布答案.您需要做的就是更改HTTP方法,将参数编码为查询字符串(默认为GET,HEAD和DELETE).请求序列化程序具有该HTTPMethodsEncodingParametersInURI
属性.只需将它设置为GET,HEAD就可以了:
serializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", nil];
Run Code Online (Sandbox Code Playgroud)