• 使用Charles代理功能将网络请求定向至本地文件


      最近在进行前端开发的时候发现Charles一个非常牛叉的功能,就是可以通过代理将网络请求定向至本地文件。有了这个功能在进行iOS开发时就可以在缺少后台接口的情况下更加真实的进行数据mock了(反正我们公司的后台。。。不想吐槽了)。

      我们先用NSURLSession发送一段简单的post请求:

        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://192.123.0.123:8080/login"] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10.0f];
        request.HTTPMethod = @"POST";
        request.HTTPBody = [@"username=123456&password=123456" dataUsingEncoding:NSUTF8StringEncoding];
        NSURLSession *session = [NSURLSession sharedSession];
        
        NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            NSLog(@"error : %@",error);
        }];
        
        [task resume];

      创建一个request对象,设置它的url为http://192.123.0.123:8080/login,当然其实这个url是不存在,因为它还没有被“实现”,设置网络请求缓存策略为忽视本地缓存数据直接请求服务端,超时时间为10秒,请求类型为post请求,body中的参数为username和password。之后创建一个会话对象session,并用这个会话对象创建一个task,最后通过[task resume]执行这个task任务,结果当然是没有结果。。。

          

       打印error信息发现请求超时,我们通过Charles抓取了网络请求包,结果如下:

                      

                       

       很明显,一个没有被“实现"的URL请求不到数据是理所当然的,但是我们通过Charles中的map local选项可以为这个没有被“实现”的URL伪造一份数据。

    右键我们的网络请求包,然后将出现的列表拉到最下方选择map local选项。 

                    

     在弹出的对话框中选择你想要将该请求指向的本地文件。

                    

        在这里我将该请求指向了桌面上一个叫做Directions.json的json文件,文件内容很简单。 

                      

        在我们进行以上操作之后再来进行一次请求,结果如下:

                        

                         

      Directions.json文件中的数据被当作请求的结果返回一个本不应该得到返回的请求在经过map后返回了我们自定义的数据,当然Charles并不仅仅只是能将请求指向本地文件而已,还可以通过map remote功能将请求指向另一个地址。在掌握这些功能后,当我们在开发中需要模拟一些极端的情况时,就可以更好的进行调试了。

     

  • 相关阅读:
    php 小知识随手记 new self() 和new static()作用和区别
    静态页面制作:16结构与表现分离
    静态页面制作:15标签样式初始化
    静态页面制作:14综合实践
    静态页面制作:13padding的用法
    静态页面制作:12盒模margin特殊情况
    静态页面制作:11盒子模型
    通过JavaScript实现打印页面
    静态页面制作:10样式实战
    Handsontable-一款仿 Excel 的效果的表格插件使用总结
  • 原文地址:https://www.cnblogs.com/tiaopi/p/6294984.html
Copyright © 2020-2023  润新知