背景
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!搞定!
- 图示
网友评论