UI_网络编程
来源:互联网 发布:起凡刷通宝软件 编辑:程序博客网 时间:2024/05/16 07:03
网络请求方式分为两种方法: GET , POST。
GET和POST的区别及共同点:
1. 客户端到底写GET还是POST, 跟服务器有关, 后期开发时,回合服务器开发人员一起开发, 到时候客户端开发人员需要询问服务器相关接口是GET还是POST
2. 不管是什么样的请求方式, 都可以进行一步连接(获得服务器所返回的数据)
3. 得到数据后, 根据数据不同, 进行不同的解析方式
4. GET请求的网址包含参数,POST一般不在网址中包含参数, 而是通过body包含参数
网络连接方式分为两种:同步,异步。
GET方法请求方式下的网络连接:
在GET方法中网址分为两部分 :
1/ '?'之前的部分 ->即网址有请求的文件在服务器的路径
2/ '?'号之后的部分 ->即相对文件中所传的参数
同步:
- (NSData *)startConnect
{
// 第一步 :准备网址, 网址就是一个字符串
NSString *urlStr =@"http://project.lanou3g.com/teacher/yihuiyun/lanouproject/activitylist.php";
// 第二步 :将网址进行封装, 包括请求方式
NSURL *url = [NSURLURLWithString:urlStr];
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
//告诉接下来的网络连接这个网络请求是什么样的网络请求
[requestsetHTTPMethod:@"GET"];
// 第三步 :连接服务器, 同步
NSURLResponse *responce = nil;
NSError *error = nil;
//同步请求时的错误信息
NSData *data = [NSURLConnectionsendSynchronousRequest:request returningResponse:&responce error:&error];
//将data转换成可读的文本,用于分析
return data;
}
异步 :
通过NSURLConnectionDataDelegate协议实现
- (void)startConnectA:(NSString *)urlStr
{
NSURL *url = [NSURLURLWithString:urlStr];
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
[requestsetHTTPMethod:@"GET"];
//正常的异步网络请求,通过协议来完成
[NSURLConnectionconnectionWithRequest:request delegate:self];
}
//获得服务器的响应(只走一次)
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
//接收数据(走多次)
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
//由于网络原因,接收数据的方法会走多次,因此需要将每次得到的说句进行拼接
[_recevieData appendData:data];
}
//接收数据完成(只走一次)
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
//在数据传输完成时,要用协议把_recevieData传到前面
}
POST方法请求方式下的网络连接:
POST方法的网址结构:
1/ 网址仅仅为'?'之前的,不包括后面的参数
2/ 参数需要通过的body进行封装才能传递
- (void)startConnectionA:(NSString *)string parmaters:(NSDictionary *)parmaters
{
NSURL *url = [NSURLURLWithString:string];
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
[requestsetHTTPMethod:@"POST"];
//封装参数,将参数拼接为count = 6 的这种字符串
NSString *str = @"";
for (NSString *keyin parmaters) {
if ([str length] ==0) {
str = [NSStringstringWithFormat:@"%@=%@", key, [parmatersobjectForKey:key]];
}else {
str = [NSStringstringWithFormat:@"%@&%@=%@", str, key, [parmatersobjectForKey:key]];
}
}
//将拼接完的参数放到request里进行封装
NSData *data = [strdataUsingEncoding:NSUTF8StringEncoding];
[requestsetHTTPBody:data];
[NSURLConnectionconnectionWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[_data appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
}
- UI_网络编程
- UI_网络编程
- UI_多线程编程
- UI_组件
- UI_多线程
- UI_协议
- UI_手势
- UI_手势
- UI_霓虹灯
- UI_动画
- UI_通讯录
- UI_数据库
- UI_封装
- UI_手势
- UI_涂鸦作业
- UI_自定义视图
- UI_本地存储
- UI_基本控件_UILabel_UITextField_UIButton_UIFont_UIAlertView
- IOS中的本地存储
- 【Android】app开发第一步:用ViewPager和SharedPreferences类设置app的引导界面
- Windows NDK 开发调试遇到问题及解决方
- Type Qualifiers in C and C++
- jquery处理JSON对象
- UI_网络编程
- leetcode----LRU Cache
- swift中来创建一些常用控件。跟我们的第一个swift应用
- IOS开发之几个常见控件的使用
- svn代码回滚命令
- 基础篇---本地存储
- 个人官网第7次升级:全文搜索闪亮登场
- poj 1887解题报告
- Java基本功练习十四(字符串和文本IO【文件读写数据、字符串生成器、String类方法、相关技巧】)