网络通信

原创 2015年11月20日 16:00:03

用字符串来加载网页的html信息

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        var str = String()
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    //用字符串来加载网页的html信息
        do {  str = try NSString(contentsOfURL:NSURL(string: "http://jikexueyuan.com")!, encoding: NSUTF8StringEncoding) as String
    }
        catch {
            print("加载失误")
        }
    print(str)
    }
     override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

读成二进制的文件

import UIKit

class ViewController: UIViewController {
    var data = NSData()
    override func viewDidLoad() {
     
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        //加载成二进制的数据
        data = ((NSData(contentsOfURL: ((NSURL(string: "http://www.baidu.com")))!)!))
        print(data)
    }
     override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

不过这样做一直会线程崩溃

以上这两种方式都是同步的,也就是主界面的UI是处于卡死状态的,用户是不能操作的,所以,这两种方法在操作本地的文件时,是可以用得,在操作网络数据时,不建议

import UIKit

class ViewController: UIViewController {
    var data = NSData()
    override func viewDidLoad() {
     
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        //用同步加载 send来加载网络上得数据,先不回应得到数据后的应答
        
        
        do { var data = try NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: "http://www.baidu.com")!), returningResponse: nil)
    }
        catch {
            print("error")
        }
        //转化成字符串类型输出 原先是二进制的类型
                  print(NSString(data: data, encoding: NSUTF8StringEncoding))
        
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

应答头是http协议的数据 

所以先定义

var resp:NSURLResponse?

再将其地址传入

 do { var data = try NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: "http://www.baidu.com")!), returningResponse: &resp)

实质上错误已经在抛出异常时处理了

异步的处理,实质上是为了防止主界面线程UI的占用

import UIKit
import SystemConfiguration
class ViewController: UIViewController {
   
    override func viewDidLoad() {
     
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        //异步请求数据,是为了不影响用户的主界面。来下载数据 不能够影响主队列
        NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: "http://www.baidu.com")!), queue: NSOperationQueue()) { (resp:NSURLResponse?, data:NSData?, error:NSError?) -> Void in
            if let e = error {
                print("发生错误")
            }else {
                print(NSString(data: data! , encoding: NSUTF8StringEncoding))
            }
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

内核 网络通信源码

【BZOJ3651】网络通信

Description 有一个由M 条电缆连接的 N 个站点组成的网络。为了防止垄断,由 C 个公司控制所有的电缆,规定任何公司不能控制连接同一个站点的两条以上的电缆(可以控制两条)。同时规定,每个...

Android网络通信

  • 2015-07-03 21:53
  • 2.27MB
  • 下载

Android下网络通信接口

Android平台有三种网络接口可以使用,他们分别是:java.net(标准Java接口)、Org.apache接口和Android.net(Android网络接口)。1.java.net JDK提...

基于TCP/UDP的网络通信

  • 2015-05-27 12:58
  • 361KB
  • 下载

嵌入式网络通信

  • 2015-03-14 14:58
  • 152KB
  • 下载

android网络通信方式总结

1995年1G问世,手机只能进行基本的语音通讯,1996-1997年2G(GSM,CDMA)及其后的GPRS,EDGE等技术的快速发展,手机开始逐渐增加了数据服务功能。2009年开始,3G在全世界开始...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)