ios开发
2018-08-02 本文已影响19人
love_program
允许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);
}
}];