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);
        }

             //同步请求,当得到数据才会结束,如果数据比较大,会造成程序的假死状态
     
     
  • 相关阅读:
    一条代码快速解决滚动条隐藏问题
    微信小程序:wx:for循环输出的使用方法以及简单例子
    点运算符(.)和中括号运算符([])有哪些区别
    线程
    ArrayMap 和HashMap的区别
    Android加载图片的策略
    Android图片加载为什么选择glide
    Android 设计模式对比
    Android 注解框架对比
    ReactNative编写规范
  • 原文地址:https://www.cnblogs.com/tian-sun/p/4310309.html
Copyright © 2011-2022 走看看