iOS 以优雅的方式跟后台聊3840 之 接口调试“摇一摇”

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xjh093/article/details/82388460

背景

3840是调试接口时,经常遇到的问题

每次调试,都只能在 Xcode 的控制台查看日志

这意味着,每次都要先运行程序,才能查看具体原因

有没有一种方式

不用每次都在控制台看日志看数据

就能找具体的原因呢?


产生

经后台同事的提醒

想写一个调试接口的小工具

每次出问题时,可以把URL参数返回数据 都提供给后台调试

一直没想到一个好的方案

后来发现后台同事

每次调试接口时

都是在浏览器里调试的

于是就想到了用 webView

一套优雅的方式就诞生了


项目结构

  • 总共 5 个文件:
JHRequestDebugView.h
JHRequestDebugView.m
UIWindow+JHRequestDebugViewShake.h
UIWindow+JHRequestDebugViewShake.m
JSONFormat.html

调试窗口:JHRequestDebugView
摇一摇事件响应:UIWindow+JHRequestDebugViewShake
JSON格式化:JSONFormat.html

  • 配置:

AFN 请求后调用其中一之一:

// for GET
[[JHRequestDebugView defaultDebugView] jh_set_GET_URL:url parameter:dic];
// or
// for POST
[[JHRequestDebugView defaultDebugView] jh_set_POST_URL:url parameter:dic];
  • 示例
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:url parameters:dic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
   //...
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
   //...
}];

// GET
[[JHRequestDebugView defaultDebugView] jh_set_GET_URL:url parameter:dic];
  • HTTPHeader 配置
    如果需要配置 HTTPHeader 信息
    JHRequestDebugView.m ,方法 - (void)xx_begin_debug; 内设置

  • 示例

// cookie
NSArray *array = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"www.haocold.com"]];
NSDictionary *cookdict = [NSHTTPCookie requestHeaderFieldsWithCookies:array];
NSString *cookie = cookdict[@"Cookie"];
if (cookie.length > 0) {
    [request setValue:cookie forHTTPHeaderField:@"Cookie"];
}
// token
NSString *token = [ToolObject jhGetLoginToken];
if (authorization.length > 0) {
    [request setValue:token forHTTPHeaderField:@"token"];
}
  • 最后

在请求接口后,摇一摇手机,就能调出调试窗口
此时,所有信息已经拷贝到 系统的
[UIPasteboard generalPasteboard].string = result;
可以通过QQ把信息发给后台,OK!搞定!

  • 图示

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


仓库

猜你喜欢

转载自blog.csdn.net/xjh093/article/details/82388460