我将使用REST Api提供POST请求。我将POST值作为字典提供。使用NSURLConnection建立连接。还使用NSJSONSerialization转换为NSDATA。
以下是我的连接的代码段。
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:restApiURL];
/* Specify that it will be a POST request */
request.HTTPMethod = @"POST";
/* Specify request timeout */
request.timeoutInterval = 300;
/* This is how we set header fields */
[request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
NSData *requestBodyData = [NSJSONSerialization dataWithJSONObject:myDictionary options:NSJSONWritingPrettyPrinted error:&error];
request.HTTPBody = requestBodyData;
/* create the connection */
self.connection = [NSURLConnection connectionWithRequest:request delegate:self];
/* ensure the connection was created */
if (self.connection)
{
/* initialize the buffer */
self.buffer = [NSMutableData data];
/* start the request */
[self.connection start];
}
else
{
NSLog(@"Connection Failed");
}
在测试 requestBodyData 时,它具有与我发送的值相同的值。但在设置请求的主体后,值将变为null。
我收到了 “操作无法完成” 的回复。但api在浏览器中运行良好。因此,对于检查,现在服务返回接收的值。打印收到的响应时,post参数的值为空。
请帮助我在休息服务中张贴适当的值。