码迷,mamicode.com
首页 > 移动开发 > 详细

ios网络编程(一)之网络请求

时间:2015-09-12 12:14:38      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

小知识:

   1, HTTP协议,Hyper Text Transfer Protocol(超?本传输协议)是?于从万维?服务器传送超?本到本地浏览器的传输协议,HTTP是 ?个应?层协议,由请求和响应构成,是?个标准的客户端服务器模型。

  2,url,统?资源定位符,也被称为?址,因特?上标准的资源?址

      url的符语法: 协议://授权/路径?查询

       协议:ftp://(?件传输协议) http://(超?本传输协议) https://(安全超文本传输协议) file://(本地文件协议)

 3,ios下进行网络编程主要分为一下三步:

        1 客户端发送请求  

            发送请求的方式:GETPOST

            GET请求:将信息直接拼接到URL的后面,在真正开发中用的比较多

            POST请求:将一些重要信息转化成二进制流。在真正开发中常用于验证用户名、密码是否正确,给服务器上传数据等

           注意:1),请求方式是由后台决定的,通过接口文档可以得知请求的方式

                    2),请求方式还有DELETEPUT等。除了GET可以使用NSURLRequst之外,其他请求必须使用NSURLMutableRequst ,明确指定当前的HTTP请求方式

        2 和服务器连接

        3 服务器做出响应


 

一、两种请求方式

    1、给服务器传输数据的?式: GET:通过?址字符串。

                                            POST:通过data

    2、传输数据的??: GET:?址字符串最多255字节。

                                POST:使?NSData,容量超过1G

    3、安全性: GET:所有传输给服务器的数据,显?在?址?,类似于密码的明?输?,直接可?。

                     POST:数据被转成NSData(?进制数据),类似于密码的密?输?,?法直接读取。


二、 GET请求

     获取请求的网址

    NSURL *url = [NSURL URLWithString:网址字符串];

    封装请求对象

     NSURLRequest *requst = [NSURLRequest requestWithURL:url];

    发送请求

    NSURLResponse *response = nil;

    NSError *error = nil;

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

     /*

     请求方法

   [NSURLConnection sendSynchronousRequest:(NSURLRequest *) returningResponse:(NSURLResponse **) error:(NSError **)]

      下面三个参数

       NSURLRequst 

        NSURLResponse

        NSError

       后面两个参数之所以传地址是为了字啊执行该方法时在方法的内部修改参数的值, 这种用法相当于让一个方法有多个返回值

  */

 

解析接收的数据(接收的数据类型视返回类型而定)

  NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves) error:nil];


三、POST请求

    获取请求网址

    NSURL *url = [NSURL URLWithString:网址字符串];

     封装成对象

   NSMutableURLRequest *requst = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:10];

    /*

       上面方法的参数:

       1 URL 网址

       2 cachePolicy:缓存机制,一般情况下使用 NSURLRequestUseProtocolCachePolicy

      3 timeoutInterval 超时机制

     */

 

    发送请求

    [requst setHTTPMethod:@"POST"];

    NSData *data = [需要加密的字符串  dataUsingEncoding:NSUTF8StringEncoding];

    [requst setHTTPBody:data];

 

    NSURLResponse *response = nil;

    NSError *error = nil;

   NSData *contentData = [NSURLConnection sendSynchronousRequest:requst returningResponse:&response error:&error];

    

     数据解析

    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:contentData options:(NSJSONReadingMutableLeaves | NSJSONReadingMutableContainers) error:nil];

    

 

ios网络编程(一)之网络请求

标签:

原文地址:http://www.cnblogs.com/qiushifalife/p/4802783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!