gpt4 book ai didi

ios - 在请求中添加用户信息

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:43 25 4
gpt4 key购买 nike

由于 ASIHTTPRequest 已弃用,我正在迁移我的代码以使用基于 NSURLSession 的服务器通信。目前,我正在使用 ASIHTTPRequestNSDictionary "userInfo" 属性来发送额外的用户信息。 ASIHTTPRequest 文档中对"userInfo" 的描述是“与请求关联的自定义用户信息(不发送到服务器)”。处理请求后,我从请求对象中重新获取这个"userInfo" 对象并采取相应的操作。我的 ASIHTTPRequest 代码示例是

要求:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:@"http://www.google.com"];
[request setDelegate:self];
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:1] forKey:@"requestCount"];
[request setUserInfo:userInfo];

我想通过 NSURLSession 实现相同的功能,我该怎么做?

NSURLSession 代码示例:

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: self.queue];

NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setTimeoutInterval:timeOutSeconds];

NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"Response:%@ %@\n", response, error);
if(error == nil)
{
NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog(@"Data = %@",text);

}
}

}];

[dataTask resume];

最佳答案

因为您正在使用完成处理程序,所以您可以使用 block 变量,请尝试以下代码:

    NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: self.queue];

NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setTimeoutInterval:timeOutSeconds];

__block NSDictionary *userInfo = [NSDictionary dictionaryWithObjectAndKeys...........];**

NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"Response:%@ %@\n", response, error);

NSLog(@"UserInfo: %@", userInfo);
if(error == nil)
{
NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog(@"Data = %@",text);

}
}

}];

[dataTask resume];

关于ios - 在请求中添加用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908611/

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