gpt4 book ai didi

php - 如何使用 AFJSONRequestOperation 获取 HTTP 响应

转载 作者:行者123 更新时间:2023-11-29 03:50:54 32 4
gpt4 key购买 nike

将json数据发送到服务器并希望使用AFNetworking从服务器获取正确的response.statusCode

服务器:

// Helper method to send a HTTP response code/message
function sendResponse($status = 200, $body = '', $content_type = 'text/html')
{
$status_header = 'HTTP/1.1 ' . $status . ' ' . getStatusCodeMessage($status);
header($status_header);
header('Content-type: ' . $content_type);
echo $body;
}
sendResponse(200, json_encode("Files Deleted"));

iOS:

NSURL *url = [NSURL URLWithString:server];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
// don't forget to set parameterEncoding!
httpClient.parameterEncoding = AFJSONParameterEncoding;\
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:deleteExtraFilesIn parameters:nil];
[request setHTTPBody:[displayJson dataUsingEncoding:NSUTF8StringEncoding]];
[request addValue:@"ASIHTTPRequest" forHTTPHeaderField:@"User-Agent"];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSLog(@"request %@",request);
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]];
AFHTTPRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:nil failure:nil];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id response) {
// Print the response body in text
if (operation.response.statusCode == 200) {
NSLog(@"Got you");

}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
[operation start];

错误 NSLOG:

Error: 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=0x1f519df0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

如何在上面的代码中获得正确的http响应?

注意:服务器上的json_encode("FilesDeleted")只是虚拟文本,我想要的是http响应代码。

最佳答案

您需要设置允许片段的操作:

        AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:nil failure:nil];
operation.JSONReadingOptions = NSJSONReadingAllowFragments;

关于php - 如何使用 AFJSONRequestOperation 获取 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076105/

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