文档章节

获取网络数据的两种方法 简单示例

木木情深
 木木情深
发布于 2014/02/28 10:50
字数 407
阅读 113
收藏 0

#pragma mark--

#pragma mark 按键响应函数

//1.get方法上传参数、获取数据

- (IBAction)getMsgWithGet:(id)sender {

    NSString *baseUrl=@"http://getMsgWithGet.php";

    NSString *withString=@"name=xxx&msg=我要发送的信息";

    

    NSString *urlString=[NSString stringWithFormat:@"%@?%@",baseUrl,withString];

    NSURL *url=[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    NSURLRequest *request=[NSURLRequest requestWithURL:url];

    

    [NSURLConnection connectionWithRequest:request delegate:self];

}

//2.post方法上传参数、获得数据

- (IBAction)getMsgWithPost:(id)sender {

    NSString *baseUrl=@"http://getMsgWithPost.php";

    NSString *withString=@"name=zzz&msg=我要通过Post发送的信息";


    NSURL *url=[NSURL URLWithString:[baseUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    

    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];

    [request setHTTPMethod:@"post"];


    NSData *parmData=[withString dataUsingEncoding:NSUTF8StringEncoding];

    [request setHTTPBody:parmData];

    

    //可以通过这种方式在httpheadfiled中添加额外的信息

    [request addValue:[NSString stringWithFormat:@"%d",parmData.length] forHTTPHeaderField:@"Content-Length"];

    [request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

    

    [NSURLConnection connectionWithRequest:request delegate:self];

}

#pragma mark--

#pragma mark NSURLConnection协议方法

//连接成功后调用

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)respons{

    netData.length=0;

    NSHTTPURLResponse *res=(NSHTTPURLResponse *)respons;

    NSLog(@"%@",res.allHeaderFields);

}

//接收数据

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

    [netData appendData:data];

}

//数据接收完成

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{

    NSString *resultString=[[NSString alloc]initWithData:netData encoding:NSUTF8StringEncoding];

    self.myLabel.text=resultString;

}



pragma mark--

#pragma mark 3.ASI协议方法示例

//导入头文件

#import "ASIHTTPRequest.h"

#import "ASIFormDataRequest.h"

-(void *)ASIgetDataWithID:(id)alumbID andWithModelIndex:(int)modelIndex

{  

    NSString *baseUrl = [NSString stringWithFormat:@"https://api.douban.com/v2/online/%@/photos",alumbID];

    NSURL *url = [NSURL URLWithString:baseUrl];


    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

    __weak ASIHTTPRequest *wRequest = request;


//    [wRequest setCompletionBlock:^{//这样子士不行的

    [request setCompletionBlock:^{

        NSDictionary *phtotDict = [NSJSONSerialization JSONObjectWithData:wRequest.responseData options:NSJSONReadingMutableContainers error:nil];

        pArr = [NSMutableArray array];

        //封装数据为model

        NSMutableArray *mtuPhtotArr = phtotDict[@"photos"];

        for(int j = 0;j < mtuPhtotArr.count; j++)

        {

            NSDictionary *phtot = [NSDictionary dictionary];

            phtot = mtuPhtotArr[j];

            

            NSString *phtotUrl = phtot[@"image"];

            

            [pArr addObject:phtotUrl];

        }


        LYGDataModel *model = myMutArr[modelIndex];

        model.cellImageArr = pArr;

        [myTableView reloadData];

    }];

   

    [request setFailedBlock:^{

        NSLog(@"%@",request.error);

    }];

    [request startAsynchronous];


}



© 著作权归作者所有

上一篇: iOS 画图
下一篇: socket udp
木木情深
粉丝 37
博文 189
码字总数 26451
作品 0
广州
程序员
私信 提问
网络数据抓取框架--TinySpider

TinySpider是一个基于Tiny HtmlParser的网络数据抓取框架。 Maven引用坐标: <dependency><groupId>org.tinygroup</groupId><artifactId>org.tinygroup.spider</artifactId><version>0.1.0-......

悠悠然然
2014/01/21
6.5K
0
IBM NeurIPS 2018 poster:把深度学习模型的表现迁移到传统机器学习模型获得高可解释性

雷锋网 AI 科技评论按:为了解释深度神经网络,研究人员们想了各种各样的办法。IBM 研究院的论文《Improving Simple Models with Confidence Profiles》也从一个角度研究了这个问题,并被 Ne...

MrBear
2018/12/13
0
0
Android ImageView

ImageView   ImageView,图像视图,直接继承自View类,它的主要功能是用于显示图片,实际上它不仅仅可以用来显示图片,任何Drawable对象都可以使用ImageView来显示。ImageView可以适用于任...

我叫leo-
2016/05/06
42
0
Web Storage 与cookies

Web Storage介绍 Web Storage带来的好处 减少网络流量:一旦数据保存在本地后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要地来回传递。快速...

黄黄黄
2017/11/17
0
0
Web存储机制—sessionStorage,localStorage使用方法

基本概念 Web Storage 包含两种机制: 为每一个给定的源维持一个独立的存储区域,该区域在页面会话期间可用(即只要浏览器处于打开状态,包括页面重新加载和恢复) 同样的功能,但是在浏览器...

你好明天ll
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

八、RabbitMQ的集群原理

集群架构 写在前面 RabbitMQ集群是按照低延迟环境设计的,千万不要跨越WAN或者互联网来搭建RabbitMQ集群。如果一定要在高延迟环境下使用RabbitMQ集群,可以参考使用Shovel和Federation工具。...

XuePeng77
今天
1
0
mac系统下,brew 安装mysql,用终端可以连接,navicat却连接不上?

问题: 1.报错? 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 2.自己通过设置,已经把密......

写bug的攻城狮
昨天
2
0
老生常谈,HashMap的死循环

问题 最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。 由于HashMap...

群星纪元
昨天
5
0
拉普拉斯算子

拉普拉斯算子是二阶微分算子。 我们知道,一维离散信号一阶微分公式如下: 相应的,一维离散信号二阶微分公式如下: 由于图像有x和y两个方向,因此图像信号属于二维离散信号。其在x,y两个...

yepanl
昨天
3
0
记录"正则表达式"

详细请查看我的博客:https://blog.enjoytoshare.club/article/RegularExpression.html 1 写在前面 正则表达式(Regular Expression)在代码中常常简写为regex。正则表达式通常被用来检索、替...

wugenqiang
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部