Menu

  • 博客
  • 关于唯我&博客
  • 唯我DIY
  • 讨论区

Copyright © VIIIO.COM | Theme by Theme in Progress | 基于 WordPress

千里之行,始于足下唯我 - 梦想从此起航

iOS NSURLRequest 实现基本的HTTP请求

2016年5月17日iOS Standard
Views: 1,722

平时在项目中都是直接使用第三方库进行网络编程,如ASIHttpRequest、AFNetworking等,但是iOS内置的NSURLRequst及其相关组件的使用也是必须掌握的。这里介绍的是如何使用最少的代码完成最基本的HTTP GET/POST请求。

 

1、HTTP GET请求

1
2
3
4
5
6
7
NSString *testUrl = @"http://www.baidu.com/";
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:testUrl]];
//异步请求
[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
        NSString *text = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@",text);
    }];

2、HTTP POST请求

1
2
3
4
5
6
7
8
9
10
11
12
13
NSString *testUrl = @"http://www.baidu.com/";//当然实际上你需要一个支持POST的地址
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:testUrl]];
//比Get请求多一步,设定HTTPMethod、Content-Type和Data
req.HTTPMethod = @"POST";
[req addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];//这里就可以换成XML、FORM、TEXT等等,视需求而定
NSMutableData *data = [NSMutableData data];
[data appendData:[[NSString stringWithFormat:@"{\"DATA\": \"TEST\"}"] dataUsingEncoding:NSUTF8StringEncoding]];//这里以JSON格式数据进行测试
req.HTTPBody = data;
//异步请求
[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
        NSString *json = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@",json);
    }];

这样就完成了最基本的网络请求功能,当然在实际项目中你还需要判断网络状况、进行异常处理、返回结果回调等等,但最重要的还是对HTTP、TCP等协议的学习和理解。

发表评论或回复 取消回复

邮箱地址不会被公开。

63 − 54 =

近期文章

  • OC UIWindow setRootViewController切换界面引发的内存问题
  • iOS证书、AppId、PP文件之间的关系
  • SVN服务器搭建、备份及多服务器同步方案(Windows)
  • [转]iOS多线程-各种线程锁的简单介绍
  • Mac 下Apache2 配置多虚拟主机

近期评论

  • NARYTHY288954NEYRTHYT发表在《ASP.NET整合Discuz PHP站 并实现用户同步》
  • nym402059flebno发表在《ASP.NET整合Discuz PHP站 并实现用户同步》
  • nem2182758krya发表在《ASP.NET整合Discuz PHP站 并实现用户同步》
  • aresgrb.se发表在《ASP.NET整合Discuz PHP站 并实现用户同步》
  • Vincenturbam发表在《ASP.NET整合Discuz PHP站 并实现用户同步》

分类目录

  • ASP.NET (15)
  • Git (2)
  • HTML (1)
  • iOS (31)
  • Javascript (7)
  • Oracle (8)
  • SQL (3)
  • SQLSERVER (2)
  • SVN (1)
  • 一行代码系列 (5)
  • 微信小程序 (1)
  • 正则表达式 (2)
  • 网站建设 (5)

文章归档

  • 2018年12月 (1)
  • 2018年4月 (1)
  • 2017年12月 (2)
  • 2017年7月 (3)
  • 2017年6月 (1)
  • 2017年4月 (1)
  • 2017年1月 (1)
  • 2016年12月 (3)
  • 2016年10月 (1)
  • 2016年7月 (1)
  • 2016年6月 (1)
  • 2016年5月 (3)
  • 2016年4月 (5)
  • 2016年3月 (4)
  • 2016年2月 (2)
  • 2016年1月 (3)
  • 2015年12月 (11)
  • 2015年11月 (7)
  • 2015年10月 (3)
  • 2015年9月 (1)
  • 2015年8月 (1)
  • 2015年7月 (1)
  • 2015年6月 (1)
  • 2015年5月 (1)
  • 2015年4月 (1)
  • 2014年7月 (1)
  • 2014年6月 (1)
  • 2014年5月 (2)
  • 2014年4月 (2)
  • 2014年3月 (2)
  • 2014年2月 (2)
2025年5月
一 二 三 四 五 六 日
« 12月    
 1234
567891011
12131415161718
19202122232425
262728293031