IOS发送网络请求 心得

路线:

  实例化URL
(网络资源)
      利用
URL 建立URLReques (网络请求)
        默认是get
请求
        对于post
请求 需要创建请求数据体
 
           利用 URLConnection 发送网络请求 (建立连接)

    获得结果

  或者:
(也就是:)
    URL

    Reques

    Connection 



  HTTP
  中利用  URLReques 建立网络请求方式:  GET & POST  

 
         get 请求 是 从服务器中取 
 
         post 请求 是 往服务器中添加东西 

   从
URL角度  get不安全 能看到密码以及一些属性 
     从服务器角度看
 get 是 安全的  

 在今后的开发中,如果使用简单的get/head请求,可以用NSURLConnction异步方法 GET查/POST增/PUT改/DELETE删/HEAD

  
GET
 
  1> URL  (路径) 
 
   NSString
*urlStr = [NSStringstringWithFormat:@"http://xxxxxxxxxx?username=%@&password=%@",
self.userName.text,
self.userPwd.text];

 
   
 
    NSURL
*url = [NSURLURLWithString:urlStr];

 
  2> NSURLRequest (请求)

 
   NSURLRequest
*request = [NSURLRequestrequestWithURL:url];

  3>
NSURLConnction 异步
( 连接)
 
       小的数据直接利用系统包装好的方法  :  sendAsynchronousRequest:queue:completionHandler:^()
方法进行连接   
^(里面填写连接之后的操作)

       如果是大的数据
就必须用代理方法 :  NSURLConnection
*connection = [NSURLConnectionconnectionWithRequest:request
delegate:self];

  接收到相应时调用

      -
(void)connection:(NSURLConnection
*)connection didReceiveResponse:(NSURLResponse
*)response
  接收到数据时调用
  

      -
(void)connection:(NSURLConnection
*)connection didReceiveData:(NSData
*)data
  接受完成时调用

      -
(void)connectionDidFinishLoading:(NSURLConnection
*)connection
  网络出错时调用

      -
(void)connection:(NSURLConnection
*)connection didFailWithError:(NSError
*)error

POST

 1> URL
 (路径)
 
   NSURL
*url = [NSURLURLWithString:@"http://xxxxxxxxxxxx.php"];

 2>
NSMutableURLRequest (可变的请求)
 
   NSMutableURLRequest
*request =[NSMutableURLRequestrequestWithURL:url];

 
       .httpMethod = @"POST”; (默认是GET 请求)
 
       request.HTTPMethod
= @"POST";

str 从
firebug直接粘贴,或者自己写
      变量名1=数值1&变量名2=数值2

NSString
*str = [NSStringstringWithFormat:@"username=%@&password=%@",self.userName.text,
self.userPwd.text]; 
                 .HTTPBody = [str
dataUsingEncoding:NSUTF8StringEncoding];
 
     request.HTTPBody
= [str dataUsingEncoding:NSUTF8StringEncoding];

 3>
NSURLConnction 异步

     小的数据也是直接利用系统包装好的方法
 :   sendAsynchronousRequest:queue:completionHandler:^()
方法进行连接   
^(里面填写连接之后的操作)


所有网络请求
都是使用 异步请求 NSURLConnction

 
   思路:
 
     1> 登录完成之前,不能做后续工作!

    2> 登录进行中,可以允许用户干点别的会更好!

    3> 让登录操作在其他线程中进行,就不会阻塞主线程的工作

    4> 结论:登陆也是异步访问,中间需要阻塞住

时间: 2024-07-29 16:07:52

IOS发送网络请求 心得的相关文章

iOS中网络请求的使用(GET请求与POST请求)

GET&POST GET和POST是两种最常用的与服务器进行交互的HTTP方法 GET 语意是获取指定URL的资源. 将数据按照variable=value的形式,添加到action所指向的URL后面,并且两者只用“?”连接,各变量之间使用“&”连接. 貌似不安全,因为在传输过程中,数据被放在请求的URL中. 传输的数据量小,这主要是因为受URL长度限制. POST POST的语意说向指定URL的资源添加数据. 将数据放在数据体中,按照变量和值相对应的方式,传递到action所指向URL.

iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieStorage)

当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你下次再访问这个站点时,NSURLRequest会拿着上次保存下来了的Cookie继续去请求.同样适用于ASIHTTPRequest,AFNetworking, Webview等,Cookie常用于一些基于认证的网络请求 认识下NSHTTPCookieStorageNSHTTPCookieStorag

iOS htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)

当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你下次再访问这个站点时,NSURLRequest会拿着上次保存下来了的Cookie继续去请求.同样适用于ASIHTTPRequest,AFNetworking, Webview等,Cookie常用于一些基于认证的网络请求 认识下NSHTTPCookieStorageNSHTTPCookieStorag

在安卓主线程不能发送网络请求的解决办法

第一种方法: 在主线程中加入这段代码,强制在主线程执行网络请求 if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } 第二种方法: 利用安卓系统自带的异步执行,将网络请求的代码加入在里面 new Async

iOS开发网络请求——大文件的多线程断点下载

iOS开发中网络请求技术已经是移动app必备技术,而网络中文件传输就是其中重点了.网络文件传输对移动客户端而言主要分为文件的上传和下载.作为开发者从技术角度会将文件分为小文件和大文件.小文件因为文件大小比较小导致传输所需时间少传输就快,因此不太容易影响用户体验,可用的技术就多.而大文件因为文件大小比较大导致传输时间长,因此就需要考虑到各种用户体验,比如避免在上传下载文件过程中阻塞主线程影响用户体验,就需要使用到多线程技术:为了给用户友好的进度提示,因此又需要开发中跟踪数据上传和下载数据的变化:为

iOS开发——网络请求方法汇总

在实际的项目开发中,连接网络是每一款App必不可少的基本功能.对于客户端的网络请求而言,无非是有两个实现方向:使用网络请求框架或者不使用网络请求框架.在这篇博客中,我将用苹果自带的网络请求方式(不使用第三方框架)下对iOS网络请求方法做一个汇总.我将在之后的博客中介绍使用AFNetworking框架进行请求的实现.代码已经上传至:https://github.com/chenyufeng1991/iOS-NetworkRequest   . [使用XML请求Webservice,可用GET或PO

IOS SWIFT 网络请求JSON解析 基础一

前言:移动互联网时代,网络通信已经是手机端必不可少的功能.应用中也必不可少地使用了网络通信,增强客户端与服务器交互.使用NSURLConnection实现HTTP的通信.NSURLConnection 提供了异步请求和同步请求两种通信方式.同步请求数据会造成主线程阻塞,通常在请求大数据或网络不通畅时不建议使用. 不管同步请求还是异步请求,建立通信的步骤是一样的: 1 创建NSURL 2 创建NSURLRequest 3 创建NSURLConnection 当NSURLConnection 创建成

iOS之网络请求

iOS中遵循较为安全的HTTPS安全超文本协议,若想访问遵循HTTP协议的网页需要进行以下设置: 将代码<key>NSAppTransportSecurity</key>     <dict>        <key>NSAllowsArbitraryLoads</key>             <true/>    </dict> 复制到 路径下: 或者在info.plist文件中添加以下字段 请求方式分为GET和PO

【iOS】网络请求框架封装

在使用网络请求的过程中,可以使用系统的框架.ASI.AF.MK等等,但是如果需要更换项目的网络请求框架(比如,项目之前用的ASI的框架,现在需要更换为AF),那么这将是一个浩大的工程.项目初期,怎么搭建网络请求框架,才可以让修改网络请求的工程量减到最小呢,这是我们今天要说的问题. 环境信息: Mac OS X 10.10.1 Xcode 6.1.1 iOS 8.1 正文 封装的网络请求框架一共三层: 第三层:ASI.AF或者其他网络请求方式.第二层:第二层分有基类与类目(Category)构成,