关于网络-get/post

 

关于网络:

//英译  connection:连接 append:添加 resign:放弃

// 加载网页数据 步骤

 

[self.webView loadRequest:request];

NSURLRequest-》NSURL

 

[self.webView loadHTMLString:(NSString *) baseURL:(NSURL *)];

baseURL:http://m.baidu.com

NSURLConnection(连接)-》start(开始连接)-》数据初始化(预备)-》拼接数据(拿到)-》数据+编码转化字符串(完成)-》处理显示(完成)-》解决错误提示

//TextFiled想要交互(设置代理,调用一个代理方法)

例如:获取文本框文字,基本都是代理方法

 

判断字符串有没有,判断其长度即可

//字符串<-->的转化

    DATA->字符串:[[NSString alloc] initWithData

    字符串->DATA:[str dataUsingEncoding:NSUTF8StringEncoding]

//GET/

GET请求是直接从服务器拿数据

性能好,效率高,在地址栏会显示参数,从直观上安全性能不高,

由于GET不提交数据给服务器,因此实际的安全性高

实际应用:查询数据

               

具体实现:               

 

//POST/

POST请求,需要弄个数据体,提交给服务器,才能获取服务器的响应

性能不好,效率低,不会在地址栏显示参数,直观的安全性能高

由于POST请求提交给数据给服务器,可能会存在安全漏洞,实际的安全性不高

实际应用:用户登录,上传文件,需要和服务器交互,用POST

//实现POST请求:-------

NSURL *url=[NSURL URLWithString:@""];//是输入账号密码后服务器响应后的网络地址

               

//发送post请求

//封装请求

NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0];

request.HTTPMethod=@"POST";

NSString *str=@"数据体字符串";//当用户发送请求,通过火狐拦截到的数据体

NSData *bodyData= [str dataUsingEncoding:NSUTF8StringEncoding];

request.HTTPBody=bodyData;

NSURLResponse *response=nil;

//账号登录一般是同步请求

 NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];

 NSString *result=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

               

NSLog(@"%@",result);

 

//向服务器发送同步请求sync 获取数据

--应用场景:例如网银账户的登录,一定要获取到网络返回的数据后,才能进行下一步操作场景,用户登录

获取请求-request -->连接发送同步请求(返回data)->data转为字符串

 NSData *data=[NSURLConnection sendSynchronousRequest:request returningRespones &reponse error:&error]

//向服务器发送异步请求async 获取数据

获取请求-request -->连接发送异步请求(返回data)->data转为字符串

NSData *data=[NSURLConnection AsendSynchronousRequest:request  queue:queue completionhandler:^(block)];

 

//webView使用

 打开网页,文档等

通常加载html/htm,pdf,docx,txt等格式文件

@"加载文件"

 [_webView loadData:(NSData *)MIMEType:(MIMEType) textEncodingName:@"UTF-8" baseURL:nil]

调用webView的loadData对象方法,需要两个参数一个数据DATA本身,一个MIMEType(即为数据类型)

               

MIMEType:告诉浏览器发送的多媒体的数据类型

MIMEType是通过Respones来获得的/(response.MIMEType)

获取MIMEType步骤如下:

  通过调用NSURLConnection send同步连接 返回的responce拿到responce.MIMEType 从而拿到文件的MIMEType

 调用NSURLConnection的同步连接方法需要 封装request参数

 拿到文件的URL-》封装request

               

@"获取本地文件的URL路径"   Resource:资源 extension:扩展

NSURL *url =[[NSBundle mainBundle] URLForResource:@"kk.txt"

                        withExtension:nil];

@"获取本地文件的字符串路径"

 NSString *str=[NSBundle mainBundle] pathForResource:(NSString *) ofType:(NSString *)

               

              

              

              

              

              

 

posted @ 2016-04-15 10:42  看谷秀  阅读(146)  评论(0编辑  收藏  举报