NSURLSession 实际应用(一)

NSURLSession的实际应用

本文介绍如何使用 NSURLSession 进行网络传输较复杂的数据——包含 file(UIImage,NSData等)类型的 json数据

文章索引词

  1. NSURLSession 的使用
  2. Types of URL Sessions
  3. NSJSONSerialization dataWithJSONObject
  4. POST multipart/form-data with Objective-C
  5. Objective-C 拼接NSData 数据
  6. HTTP协议
  7. Postman 测试上传图片

需求场景

例如,给定请求域名和path以及参数如下
http://127.0.0.1:888/wandd/fafd

request:
{
   
    "id":16,
    "client_screenshot": "图片文件",
    "top_viewController":"",
}
response
{
   
   "BaseResp":{
   
      "StatusMessage":"success",
      "StatusCode":0
   }
}

NSURLSession

官方介绍

@interface NSURLSession : NSObject
An object that coordinates a group of related, network data transfer tasks
协调一组相关的网络数据传输任务的对象

NSURLSession 类和相关类提供了一个API,用于从URL指示的网络端下载数据并将数据上传到该网络端。app还可以使用此API在应用未运行时执行后台下载,或者在iOS中,在应用挂起时也执行后台下载。您可以使用相关的NSURLSessionDelegate和 NSURLSessionTaskDelegate 来支持身份验证,并接收重定向和完成任务等事件。

make NSURLSession
NSURLSession *session = [NSURLSession sharedSession];
//系统提供了一个 NSURLSession 的单例
make URL
NSURL *url = [NSURL URLWithString:@"协议://主机地址:port/路径?参数&参数"];
  • 协议:不同的协议,代表着不同的资源查找方式、资源传输方式,比如常用的http,ftp等
  • ip:存放资源的主机的IP地址(域名)
  • port:端口
  • path:资源存放在主机的地址
  • 参数:参数可有可无,也可以多个。如果带参数的话,用“?”号后面接参数,多个参数的话之间用&隔开
NSString *vurl = hostport <0? [NSString stringWithFormat: @"%@/%@", hostip, pathStr]:[NSString stringWithFormat: @"%@:%d/%@", hostip, hostport, pathStr];
vurl = [vurl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString:vurl];

实际应用中 URL 一般都是通过 NSString 拼接而成,然后对字符串进行编码(
通过将不在指定集合中的所有字符替换为百分比编码的字符,返回从接收器生成的新字符串)

make json data
request:
{
   
    "task_id":16, 
    "pic": "客户端截图图片文件",
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值