网络-URLConnection & URLSession

1、URLConnection

// 1. url

// 1> 判断text是否以http开头

NSString *urlString = text;

if (![text hasPrefix:@"http://"]) {

// 2> 拼接URL字符串

urlString = [NSString stringWithFormat:@"http://m.baidu.com/s?word=%@", text];

}

// 对于特殊字符,例如空格或者中文都需要%转义

// 在iOS中,如果没有特殊要求,需要使用的编码格式是UTF8

urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL URLWithString:urlString];

// 2. 请求

NSURLRequest *request = [NSURLRequest requestWithURL:url];

// 3. 用web加载请求

// 1> 第一步是把请求发送给服务器

// 2> 显示服务器返回的内容

[self.webView loadRequest:request];

2、URLSession

NSURLSession是iOS7中新的网络接口,与NSURLConnection是并列的。

当程序在前台时,NSURLSession与NSURLConnection大部分可以互相替代

NSURLSession支持后台网络操作,除非用户强行关闭

NSURLSession提供的功能:

通过URL将数据下载到内存

通过URL将数据下载到文件系统

将数据上传到指定URL

在后台完成上述功能

对于小型数据,例如用户登录、下载小图像、JSON & XML仍然使用NSURLConnection的异步或同步方法即可

// 1. url

NSURL *url = [NSURL URLWithString:@"http://m.baidu.com"];

// 2. request

NSURLRequest *request = [NSURLRequest requestWithURL:url];

// 3. session会话

// sharedSession是一个全局网络会话的单例,便于程序员处理简单的网络请求

NSURLSession *session = [NSURLSession sharedSession];

// 4. 任务,所有的网络任务都是由会话来创建的

NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@", html);

}];

// 5. 任务默认都是挂起的

[task resume];

时间: 2024-10-05 23:50:41

网络-URLConnection & URLSession的相关文章

android中网络操作使用总结(http)

Android是作为智能手机的操作系统,我们开发的应用,大多数也都需要连接网络,通过网络发送数据.获取数据,因此作为一个应用开发者必须熟悉怎么进行网络访问与连接.通常android中进行网络连接一般是使用scoket或者http,http是最多的情况,这里,我来总结下,怎么进行http网络访问操作. android是采用java语言进行开发的,android的包中包含java的URLConnection和apache 的httpclient,因此我们可以使用这两个工具进行网络连接和操作.同时,为

android网络操作使用汇总(http)

Android是作为智能手机的操作系统,我们开发的应用,大多数也都须要连接网络,通过网络发送数据.获取数据,因此作为一个应用开发人员必须熟悉怎么进行网络訪问与连接. 通常android中进行网络连接通常是使用scoket或者http,http是最多的情况.这里,我来总结下.怎么进行http网络訪问操作. android是採用java语言进行开发的,android的包中包括java的URLConnection和apache 的httpclient,因此我们能够使用这两个工具进行网络连接和操作.同一

网络编程 --- URLConnection --- 读取服务器的数据 --- java

使用URLConnection类获取服务器的数据 抽象类URLConnection表示一个指向指定URL资源的活动连接,它是java协议处理器机制的一部分. URL对象的openConnection()方法就是调用了URLStreamHandler的openConnection()方法. 如有疑问请参考:JAVA网络编程[第三版], 如下图: 怎样获取服务器输出的数据呢?代码如下: import java.io.IOException; import java.io.InputStream; i

网络编程(2)——连接父类URLConnection

在前面网络编程(1)中我们了解到如果想要访问其他主机的资源,那么就得知道该资源的URL.那么如果知道了该URL,我们该怎样去访问其主机上的资源呢?本文主要讲清楚Java语言编程的Android网络编程的最基础的父类URLConnectiion,该类是利用URL来实现主机资源的访问,其每个子类的特点都进一步优化并支持新的网络协议,达到从全面到局部,从广泛到精细的系统学习. 从JavaAPI中可以看到 java.lang.Object java.net.URLConnection URLConnec

Java网络编程小结 URLConnection协议处理器

URL和URLConnection类 网络中的URL(Uniform Resource Locator)是统一资源定位符的简称.它表示Internet上某一资源的地址.通过URL我们可以访问Internet上的各种网络资源,比如最常见的WWW,FTP站点. URL可以被认为是指向互联网资源的“指针”,通过URL可以获得互联网资源相关信息,包括获得URL的InputStream对象获取资源的信息,以及一个到URL所引用远程对象的连接URLConnection. URLConnection对象可以向

Android 网络编程(3)——使用URLConnection提交请求

URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信连接.程序可以通过URLConnection实例向该URL发送请求,读取URL引用的资源 通常创建一个和URL的连接,并发送请求.读取此URL引用的资源需要如下几个步骤: 通过调用URL对象openConnection()方法来创建URLConnection对象 设置URLConnection的参数和普通请求属性 如果只是发送GET方法请求,使用connect方式建立和远程资

Java网络编程(URL与URLConnection)

//URL package org.urldemo; import java.io.InputStream; import java.net.URL; import java.util.Scanner; public class URLDemo { public static void main(String[] args) throws Exception{ URL url = new URL("http","www.hut.edu.cn",80,"/c

[Xcode10 实际操作]八、网络与多线程-(17)使用网址会话对象URLSession向远程服务器上传图片

本文将演示如何通过网址会话对象URLSession向远程服务器上传图片. 网址会话对象URLSession具有在后台上传和下载.暂停和恢复网络操作.丰富的代理模式等优点. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // D

Android中的网络编程系列(一):URLConnection

转载请注明出处:http://blog.csdn.net/bettarwang/article/details/41229955 URL(Uniform Resource Locator)对象代表统一资源定位器,它是指向互联网资源的指针.URL由协议名.主机.端口和资源路径组件,即满足如下格式: protocol://host:port/path 例如http://kan.sogou.com/dianying/就是一个URL地址. URL提供了多个构造方法用于创建URL对象,同时它提供的主要方法