ios开发

作者: love_program | 来源:发表于2018-08-02 20:30 被阅读19次

    允许ios访问网络内容

    image.png

    发送异步请求网页内容显示在webview中

        //发送请求,并且显示在webview中
    //    NSString *str = @"http://47.96.8.95/h5/place/test/aboutus/%E6%9C%80%E6%96%B0%E8%B5%84%E8%AE%AF.json";
        NSString *str = @"http://m.baidu.com";
        NSURL *url = [NSURL URLWithString:str];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
            
            //response 服务器返回的响应头
            //data 服务器返回的响应体
            //connectionError 链接网络错误
            
            //判断请求是否错误
            if(!connectionError) {
                
                //把二进制数据转成NSString
                NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                
                [self.webview loadHTMLString:html baseURL:nil];
                NSLog(@"html=%@",html);
            } else {
                
                NSLog(@"链接错误%@", connectionError);
            }
        }];
    

    异步请求json,并且转成字典

          NSString *str = @"http://47.96.8.95/h5/place/test/aboutus/%E6%9C%80%E6%96%B0%E8%B5%84%E8%AE%AF.json";
        NSURL *url = [NSURL URLWithString:str];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
            
            if(connectionError) {
                NSLog(@"链接错误%@", connectionError);
                return ;
            }
            
            NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
            if(httpResponse.statusCode == 200 || httpResponse.statusCode == 304) {
                
                //解析data   data是json形式的字符串
                //JSON序列化 把对象转换成JSON形式的字符串
                //JSON的反序列化  把JSON形式的字符串转换成OC中的对象
                
                //把json字符串穿转成json对象
                
                NSError *error;
                
                //解析的JSON字符串,返回的OC对象可能是数组或对象
                
                //options对应三个枚举值, 如果是0的话,是不可变的
                //我们使用的时候就传入0就可以了,因为我们拿到的json字符串转成字典,最终还是要转成模型的
                //NSJSONReadingMutableContainers = (1UL << 0), //容器可变
                //NSJSONReadingMutableLeaves = (1UL << 1), //叶子可变,但是从ios7以后就不起作用了,其实就是没用了
                //NSJSONReadingAllowFragments = (1UL << 2) //运行不是JSON形式的字符串
                id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];//&error是传入error的地址
                
                if(error) {
                    
                    NSLog(@"解析JSON出错==%@",error);
                    return;
                }
                
                NSLog(@"%@", [json class]);
                NSLog(@"json===%@", json);
            }
        }];
    

    相关文章

      网友评论

          本文标题:ios开发

          本文链接:https://www.haomeiwen.com/subject/jqnsvftx.html