gpt4 book ai didi

ios - 使用 session 快速发出 HTTP POST 请求

转载 作者:行者123 更新时间:2023-11-30 12:37:51 25 4
gpt4 key购买 nike

我尝试向后端服务器执行 POST 请求,并将其用于目标 - c 中“ServiceUtils”类内的基本 session

(AFHTTPSessionManager *)baseSessionManager {

if (httpSessionManager) {
return httpSessionManager;
}

httpSessionManager = [AFHTTPSessionManager manager];
httpSessionManager.requestSerializer = [AFJSONRequestSerializer serializer];
[httpSessionManager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[httpSessionManager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];

// User agent for iOS app.
NSString *userAgent = [NSString stringWithFormat:@"xxxxx Mobile iOS/%@ (%@ - %@ v%@)", [Utils appVersionWithBuild], [[UIDevice currentDevice] model], [[UIDevice currentDevice] systemName], [[UIDevice currentDevice] systemVersion]];

[httpSessionManager.requestSerializer setValue:userAgent forHTTPHeaderField:@"User-Agent"];

// Mobile auth
User *user = [User getUserWithContext:[NSManagedObjectContext MR_defaultContext]];
NSString *mobileAuth = [[NSString stringWithFormat:@"%@--givemymoneybackdude", user.token] sha1];
[httpSessionManager.requestSerializer setValue:mobileAuth forHTTPHeaderField:@"Mobile-Auth"];

// Authorization
NSString *authorization = [[NSString stringWithFormat:@"%@:X", user.token] stringBase64];
[httpSessionManager.requestSerializer setValue:[NSString stringWithFormat:@"Basic %@", authorization] forHTTPHeaderField:@"Authorization"];

// Locale
if (user.locale) {
[httpSessionManager.requestSerializer setValue:user.locale forHTTPHeaderField:@"Accept-Language"];
}

return httpSessionManager;
}

这是我尝试在 swift 2.3 中发出 POST 请求的代码

if let url = NSURL(string: "xxxxxxxx") {
let session = ServicesUtils.baseSessionManager()
let request = NSMutableURLRequest(URL: url)

request.HTTPMethod = "POST"
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")

let jsonObject = ["token" : "Token String", "refresh_token" : "refresh_token String","expires_in" : "expires_in String", "user_id" : "uber_uuid", "token_type" : "Bearer"]


request.HTTPBody = try? NSJSONSerialization.dataWithJSONObject(jsonObject, options: [])

session.dataTaskWithRequest(request) { data, response, error in
guard
error == nil &&
(response as? NSHTTPURLResponse)?.statusCode == 200
else {
print((response as? NSHTTPURLResponse)?.statusCode ?? "no status code")
print(error?.localizedDescription ?? "no error description")
return
}
}.resume()

尝试此操作后,我收到此错误:

Request failed: unauthorized (401)

我检查了标题,没问题,但出现了这个问题。有人能告诉我为什么会这样吗?我如何在 jsonObject 内部传递一个名为“Integration”的字典,其中包含其中的值

最佳答案

此代码将帮助您......以及使用 Alamofire。

    Alamofire.request(requestUrl, method: .post, parameters: (parametersDictionary as NSDictionary) as? Parameters , encoding: JSONEncoding.default, headers: nil).responseJSON { response in

if(response.result.error == nil){

if((response.response?.statusCode)! < 500){

if(response.response?.statusCode == 200){

if let JSON = response.result.value {

let dict = JSON as! NSDictionary
let status :Bool = dict["status"] as! Bool

if(status){
success(dict)
}else{
failure(dict["message"] as! String)
}
}
}else{
failure("Something went wrong please try again")
}
}else{
failure("Something went wrong please try again")
}
}
}
}

希望以下链接可以帮助您:https://github.com/Alamofire/Alamofire

关于ios - 使用 session 快速发出 HTTP POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42633073/

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