蚂蚁mPaaS框架控制台打印 原生与h5交互数据 和 RPC接口返回数据 都是Unicode乱码如何处理

 

1.原生与h5交互数据

具体的参考之前博客:https://blog.csdn.net/qq_15509071/article/details/113876172

这里修改为:

- (void)userContentController:(nonnull WKUserContentController *)arg1 didReceiveScriptMessageS:(nonnull WKScriptMessage *)arg2;{
    
    //这个地方直接打印arg2.body有乱码,打印arg2.body[@"queue"]就好了

    NSString *queue = arg2.body[@"queue"];

    NSLog(@"交互数据之 userContentController\n%@\n%@",queue,arg2.name);
    
    [self userContentController:arg1 didReceiveScriptMessageS:arg2];


}

 

2.如何拦截与打印所有h5和原生的RPC接口返回报文。

DTRpcClient+YYY.h

#import <APMobileNetwork/APMobileNetwork.h>

NS_ASSUME_NONNULL_BEGIN

@interface DTRpcClient (YYY)

@end

NS_ASSUME_NONNULL_END
DTRpcClient+YYY.m


#import "DTRpcClient+YYY.h"
#import <objc/runtime.h>
@implementation DTRpcClient (YYY)
+ (void)load{
    {
        Method originalMethod = class_getInstanceMethod([NSClassFromString(@"DTRpcClient") class], @selector(executeMethod:params:requestHeaderField:responseHeaderFields:));
        Method swizzledMethod = class_getInstanceMethod([self class], @selector(SexecuteMethod:params:requestHeaderField:responseHeaderFields:));
        method_exchangeImplementations(originalMethod, swizzledMethod);
    }
}

    


- (id)SexecuteMethod:(DTRpcMethod *)method params:(NSArray *)params requestHeaderField:(NSDictionary*)field responseHeaderFields:(void (^)(NSDictionary* allHeaderFields))responseBlock;{

    //用来修改网络请求数据
    
    id responseData = [self SexecuteMethod:method params:params requestHeaderField:field responseHeaderFields:^(NSDictionary *allHeaderFields) {
        
        
        if(responseBlock){
            
            responseBlock(allHeaderFields);
        }
    }];
    
    //框架自己的mPaaSLog打印返回数据有特殊字符 这里不直接打印字典 改成将字典转成json字符串打印 问题解决
    if([responseData isKindOfClass:[NSDictionary class]]){
      
        NSDictionary *value_ = responseData[@"body"];
       
        NSLog(@" %@ %@\n",method.operationType,[self convertToJsonData:value_]);
    }
        
    return  responseData;


}
- (NSString *)convertToJsonData:(NSDictionary *)dict{
    
    
    NSError *error;

    if (dict == nil) {
        return @"";
    }

      
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];

     NSString *jsonString;

     if (!jsonData) {

       NSLog(@"%@",error);

     }else{

       jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];

     }

     NSMutableString *mutStr = [NSMutableString stringWithString:jsonString];


     return mutStr;

}

@end

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值