gpt4 book ai didi

objective-c - 从 AFNetworking 检索 PHP 中的 JSON

转载 作者:行者123 更新时间:2023-12-03 16:32:14 24 4
gpt4 key购买 nike

这是我第一次将 JSON 发送到服务器,我不知道为什么我的 PHP 脚本没有收到调用。

我认为问题在于我如何从应用程序设置 POST 变量,并且我获取了错误的变量或未按预期设置 $_POST['search']

有人可以指出我如何获取发布的数据以及如何正确设置$_POST['search']

当我从 xcode 输出中查看时,我的 $var 返回 0

PHP

header('Content-Type: text/json');
$var = (isset($_POST['search']) ? json_decode($_POST['search']) : false);
echo json_encode($var)

objective-c

 NSDictionary *myJson=@{@"userID": @"1",
@"search":@{@"for":@"routine",
@"page":@"1",
@"orderBy":@"new",
@"type":@"1"}
};
NSURL *url = [[NSURL alloc]initWithString:@"http://192.168.1.64/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc]initWithBaseURL:url];
httpClient.parameterEncoding = AFJSONParameterEncoding;
NSDictionary *params = myJson;
NSURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"http://192.168.1.64/igym/bootstrap.php" parameters:params];

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON){
NSLog(@"Inside the success block %@",JSON);
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON){
NSLog(@"json text is: %@", JSON);
NSLog(@"Request failed with error: %@, %@", error, error.userInfo);
}];
[operation start];

最佳答案

问题是您将所有参数(包括“搜索”)编码为 json:

httpClient.parameterEncoding = AFJSONParameterEncoding;

因此,您无法使用

在 php 中访问它
$_POST['search'];

在这种情况下,数据不会通过邮寄发送

你可以做两件事:

  • 仅将搜索字典的内容编码为 JSON(而非所有参数)
  • 通过以下方式访问数据:

:

$post = json_decode(file_get_contents('php://input'));

$post 将包含您发布的所有 json 编码数据,如下所示:

{
search = {
for = routine;
orderBy = new;
page = 1;
type = 1;
};
userID = 1;
}

关于objective-c - 从 AFNetworking 检索 PHP 中的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874946/

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