gpt4 book ai didi

ios - AFNetworking 2.0 : How to pass complete json param argument converted as base64encoded + urlencoded string for AFNetworking 2. 0 发布请求

转载 作者:可可西里 更新时间:2023-11-01 05:40:39 28 4
gpt4 key购买 nike

我正在使用 AFNetworking 2.0 & 新版本。成功尝试了几个示例 WS 调用。我们已经实现了 Web 服务并被称为:

它的数据参数是加密后的字符串。

请求是:http://demo.XYZ.net/getlanguage//举个例子

参数:

1) 首先你需要用下面的参数创建 json 字典转字符串

   {
param = {
pone = "com.xyz";
ptwo = 68208;
pthree = eda24e95f;
};
}

   {"param":{"pone":"com.xyz","ptwo":"68208","pthree":"eda24e95f"}}

2) 然后将json字符串转成base64编码

   something like: eyJob21lIjp7InNGFlMGEzZDg1Mzg3YTNkYmFlZDQ5MzBiMCIsInNhbHQiOiI3OTU2IiwicGFj5uY19

3) 然后将字符串转换成urlencode然后加密发送 使用 post 方法的“数据”中的字符串

eyJob21lIjp7InNpZ24iOiJiZmU4Y2RmZGEzZDg1Mzg3YTNkYmFlZDQ5MzBiMCIsInNhbHQi%0AOiI3OTU2IiwicGFja2FnZSI6ImNvbS5uYmJk

然后最后传递编码后的字符串如下:

http://demo.XYZ.net/getlanguage?data= eyJob21lIjp7InNpZ24iOiJiZmU4Y2RmZGEzZDg1Mzg3YTNkYmFlZDQ5MzBiMCIsInNhbHQi%0AOiI3OTU2IiwicGFja2FnZSI6ImNvbS5uYmJk

以上 WS 完美运行。[检查 “POSTMan-Chrome-Extension”]

问题是如何使用 AFNetworking 2.0 实现相同的功能?当我们使用 AFHTTPRequestOperationManager 时,在哪里使用上面的参数加密?

谢谢

最佳答案

如果这确实是您的服务器所需要的,您可以使用 NSJSONSerialization 简单地将原始 param 字典转换为 JSON,然后使用 base64EncodedStringWithOptions 。完成后,您可以使用该字符串构建新的参数字典:

NSString *urlString = @"http://demo.XYZ.net/getlanguage";

NSDictionary *originalParameters = @{@"param" : @{
@"pone" : @"com.xyz",
@"ptwo" : @68208,
@"pthree" : @"eda24e95f"
}
};

NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:originalParameters options:0 error:&error];
NSAssert(jsonData, @"JSON encoding failed: %@", error);

NSString *base64EncodedString = [jsonData base64EncodedStringWithOptions:0];

NSDictionary *parameters = @{@"data" : base64EncodedString};

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

[manager GET:urlString parameters:parameters success:^(NSURLSessionDataTask * __nonnull task, id __nonnull responseObject) {
NSLog(@"responseObject = %@", responseObject);
} failure:^(NSURLSessionDataTask * __nonnull task, NSError * __nonnull error) {
NSLog(@"error = %@", error);
}];

如果您使用的是 AFHTTPRequestOperationManager,基本思想是相同的:将参数字典转换为 JSON,对其进行 base64 编码,然后为其创建新的参数字典并将其提供给 GET 方法。

关于ios - AFNetworking 2.0 : How to pass complete json param argument converted as base64encoded + urlencoded string for AFNetworking 2. 0 发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660173/

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