gpt4 book ai didi

php - AFNetworking 2.0 POST 问题,Cocoa 错误 3840(JSON 文本没有以数组开头...)

转载 作者:可可西里 更新时间:2023-11-01 03:43:32 25 4
gpt4 key购买 nike

我正在尝试在我的本地服务器上调用 api.php(使用 MAMP)。服务器端api.php被调用,但是php代码中_POST的内容有如下错误:

Error Domain = NSCocoaErrorDomain Code = 3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo = 0x15d7bdd0 {NSDebugDescription = JSON text did not start with array or object and option to allow fragments not set.}

我尝试向 api.php 发送 JSON POST 请求的应用程序是一个使用 AFNetworking 2 的 iOS 应用程序

这是我的请求代码:

- (void)postUpdateRequest
{
if (!dataModel)
dataModel = [[DataModel alloc] init];

NSDictionary *params = @{@"foo": @"bar2"};

NSLog(@"%@",params);

/* NSDictionary *params = @{@"cmd":@"update",
@"user_id":[dataModel userId],
@"token":[dataModel deviceToken]
};//@"ip_address":[dataModel getIPAddress]};*/

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// manager.requestSerializer = [AFJSONRequestSerializer serializer];

[manager POST:ServerApiURL parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}

我在整个互联网上都进行了搜索,但找不到针对我的具体问题的答案。无论我做什么,我都会得到同样的错误。

为什么我的 JSON 格式不正确?我似乎也找不到一种方法来嗅探我实际发送的 JSON。

谢谢。

最佳答案

当您在您的示例中使用 API 时,您的 HTTP 消息将使用 Content-Type application/x-www-form-urlencoded 组成。在内部,您的 param 字典由 AFN 编码(尽管并不严格按照 w3c 的规定正确),并设置为请求正文。

由于您没有指定 Accept header ,服务器可以自由选择可能的响应数据(如果有)的内容类型。

当您收到响应时,您需要始终检查响应主体的 HTTP 状态代码和内容类型(如果有)。

很可能,服务器返回了一个指示某些问题的状态代码和一个包含“错误响应”的响应正文,其内容类型与您预期的不同(例如,它返回了文本/html)。

关于php - AFNetworking 2.0 POST 问题,Cocoa 错误 3840(JSON 文本没有以数组开头...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19874935/

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