zoukankan      html  css  js  c++  java
  • Get同步请求

    //同步get请求
    //    NSURL: iOS 中的URL存储类,可存储网址或者文件路径
       
        NSString *urlString = @"http://api.map.baidu.com/place/v2/search?query=大保健&region=郑州&output=json&ak=6E823f587c95f0148c19993539b99295";
        //创建url
            //url中出现中文的时候,需要转码

        NSURL *url = [[NSURL alloc] initWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        
    //    NSURLRequest, url请求类,不能修改请求
    //    NSMutableURLRequest , 设置url请求的参数,例如请求方式
        
            //创建请求
        NSURLRequest *urlRequest = [[NSURLRequest alloc] initWithURL:url];
            //请求的最大时长(默认, 60)
        NSLog(@"%f", urlRequest.timeoutInterval);
            //请求的方式(默认, GET)
        NSLog(@"%@", urlRequest.HTTPMethod);
            //缓存策略(不能设置,可以在初始化的时候指定)
    //    NSURLRequestUseProtocolCachePolicy:使用协议缓存策略
    //    NSURLRequestReloadIgnoringLocalCacheData:不使用本地的缓存,每次都从服务器请求数据
    //    NSURLRequestReturnCacheDataElseLoad:先读取缓存,没有缓存,再从服务器端请求数据
    //    NSURLRequestReturnCacheDataDontLoad:只从缓存获取(类似离线模式)
        
        NSLog(@"%lu", urlRequest.cachePolicy);
        
        [url release];
        
    //    NSURLConnection: 网络连接类,用于发送url请求
            //发送同步请求
        NSURLResponse *response = nil;
        NSError *error = nil;
    //    NSData, 存储二进制数据
        NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];


        NSLog(@"%@", data);

          //    NSURLConnection sendSynchronousRequest:<#(NSURLRequest *)#> returningResponse:<#(NSURLResponse *__autoreleasing *)#> error:<#(NSError *__autoreleasing *)#>   

    //转成NSString

    NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", string);
        
        
        if (error) {
            NSLog(@"%@", error);
        }
        
        if (response) {
            NSLog(@"%@", response);
        }

             //同步请求,当得到数据才会结束,如果数据比较大,会造成程序的假死状态
     
     
  • 相关阅读:
    拯救祭天的程序员——事件溯源模式
    啥?SynchronousQueue和钟点房一个道理
    程序员应该掌握的一些 Linux 命令
    Linux 环境下使用 sqlplus 访问远程 Oracle 数据库
    我对鸿蒙OS的一些看法
    我对技术潮流的一些看法
    git merge --ff/--no-ff/--ff-only 三种选项参数的区别
    go语言的初体验
    完全使用 VSCode 开发的心得和体会
    重复代码的克星,高效工具 VSCode snippets 的使用指南
  • 原文地址:https://www.cnblogs.com/tian-sun/p/4310309.html
Copyright © 2011-2022 走看看