gpt4 book ai didi

ios - 使用 AFNetworking 的 setQueryStringSerializationWithBlock 时如何调用默认行为

转载 作者:行者123 更新时间:2023-12-01 16:37:42 25 4
gpt4 key购买 nike

我需要防止在我们的应用程序中对一个 HTTP 请求的一个参数值进行 URL 编码,因为它在传递给 AFNetworking 之前已经被编码。*

似乎最明显的方法是在 AFHTTPRequestSerializer 上使用 setQueryStringSerializationWithBlock。但是,对于不需要自定义处理的情况,我无法弄清楚如何交给 AFNetworking 来进行默认序列化。

IE。我需要能够说(伪代码):

[sessionManager.requestSerializer setQueryStringSerializationWithBlock:
^NSString *(NSURLRequest *request, NSDictionary *parameters, NSError *__autoreleasing *error)
{
if (request is DFP request and parameter is cust_params)
{
// do special handling
}
else
{
// do standard URL encoding for the parameter
// how?
}
}];

本质上,对于其他情况,我想做 AFURLRequestSerialization.requestBySerializingRequest 所做的事情,即调用静态函数:
AFQueryStringFromParametersWithEncoding(parameters, self.stringEncoding);

然而,这并没有暴露在 AFURLRequestSerialization.m 实现文件之外,所以我不能调用它。

这里的正确做法是什么?

*有问题的参数是 DFP 广告转换调用的 cust_params 参数,请参阅: https://support.google.com/dfp_premium/answer/1080597

最佳答案

AFQueryStringFromParametersWithEncoding是私有(private)的,但它的实现通过默认 AFHTTPRequestSerializer 公开使用 URL 编码实现请求参数序列化。只需从 block 中的另一个实例中获取值。

关于ios - 使用 AFNetworking 的 setQueryStringSerializationWithBlock 时如何调用默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26675591/

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