`

IOS与服务器交互POST 和 GET

阅读更多

背景介绍:
        当开发IOS应用时,IOS端会和服务器进行交互。IOS端会向服务器传送数据,如:登录功能,注册功能,发送用户填写信息到服务器等功能,都会用到POST方法。也会从服务器获取数据,就会用到GET方法。接下来,我来讲述一下IOS端与服务器的交互过程:

       当在某种需求下,我需要向服务器发送数据

NSURL *url = [NSURL URLWithString:@"http://xx/xx?user_id=xx&token=xx"];//设置请求的url
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    request.HTTPMethod = @"POST";//POST请求
    request.timeoutInterval = 60;
    NSData *data = [NSJSONSerialization dataWithJSONObject:dic_test options:0 error:nil];//将发送数据转化成JSON(NSData类型)
    request.HTTPBody = data;
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];//设置发送内容类型为 JSON
    NSURLConnection *connect = [NSURLConnection connectionWithRequest:request delegate:self];
    [connect start];
    [m_respond_data setLength:0];//设置接收POST结果的变量(NSMutableData类型)每次发送前先清空数据

 

           实现NSURLConnectionDelegate的代理方法

// 当服务端提供了有效的数据来创建NSURLResponse对象时,代理会收到connection:didReceiveResponse:消息。
// 这个代理方法会检查NSURLResponse对象并确认数据的content-type,MIME类型,文件 名和其它元数据。
// 需要注意的是,对于单个连接,我们可能会接多次收到connection:didReceiveResponse:消息;这咱情况发生在
// 响应是多重MIME编码的情况下。每次代理接收到connection:didReceiveResponse:时,应该重设进度标识
// 并丢弃之前接收到的数据。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
    NSLog(@"%@",[res allHeaderFields]);
}
//接收到服务器传输数据的时候调用,此方法根据数据大小执行若干次,将返回的数据全部接收到一起
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [m_respond_data appendData:data];
}
//数据传完之后调用此方法
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSDictionary *respond = [NSJSONSerialization JSONObjectWithData:m_respond_data options:NSJSONReadingMutableLeaves error:nil];
    //根据数据信息将界面作出相应的处理
    if ([[respond objectForKey:@"errcode"] isEqualToNumber:[NSNumber numberWithInt:0]])
    {
    }
}
//网络请求过程中,出现任何错误(断网,连接超时等)会进入此方法
-(void)connection:(NSURLConnection *)connection
 didFailWithError:(NSError *)error
{
    NSLog(@"%@",[error localizedDescription]);
}

   

 

分享到:
评论

相关推荐

    ios同步、异步、get与post请求介绍

    总结来说,iOS开发者在处理网络请求时,需要根据实际需求选择同步或异步请求,以及GET或POST方法。同步请求适用于数据量小且不影响用户交互的场景,而异步请求则更适用于需要保持用户界面流畅的情况。GET请求简单但...

    IOS 客户端与服务端之间数据交互框架

    在iOS开发中,客户端和服务端之间的数据交互是应用程序的核心部分,它使得用户界面可以动态更新,功能得以实现。本文将详细探讨iOS客户端与服务端之间的数据交互框架,并介绍相关的文件操作类库。 首先,让我们关注...

    ios-封装GET、POST请求(基于AFNetworking).zip

    在iOS开发中,网络请求是应用与服务器交互的基础,用于获取或发送数据。AFNetworking是一个强大的网络库,它为Objective-C和Swift提供了简洁的接口来处理HTTP网络请求。本项目"ios-封装GET、POST请求(基于...

    IOS开发之Post 方式获取服务器数据

    在iOS开发中,通过POST方式从服务器获取数据是一项常见的任务,尤其当涉及到向服务器发送复杂或大量的参数时。本文将深入解析如何在...通过理解并实践上述步骤,开发者可以有效地与服务器交互,实现更强大的应用功能。

    ios-AFN封装,GET POST 缓存.zip

    在iOS开发中,网络请求是应用与服务器交互的基础,而AFNetworking(简称AFN)是Objective-C和Swift中广泛使用的网络请求库。本压缩包"ios-AFN封装,GET POST 缓存.zip"提供了AFNetworking的封装,涵盖了GET、POST...

    iOS移动应用开发 GET和POST两种基本请求方法的区别.pdf

    在iOS移动应用开发中,与HTTP请求相关的两个基础方法是GET和POST,它们在实际使用中有着明显的区别。GET和POST都是HTTP协议定义的用于客户端向服务器发送数据的方法。 首先,GET方法通常将参数直接附加在URL后面,...

    iOS之同步请求、异步请求、GET请求、POST请求

    在iOS开发中,网络请求是应用与服务器交互的重要方式,主要分为同步请求和异步请求,同时HTTP协议提供了两种常见的请求方法:GET和POST。理解这些概念及其在iOS中的实现对于构建用户友好的应用程序至关重要。 1. **...

    ios 实现登录服务器 demo

    在iOS开发中,实现登录服务器是一项基础且重要的任务,尤其对于初学者来说,这是一个学习网络请求和数据交互的好起点。本教程将通过一个名为"ASIRequestDemo"的项目,介绍如何借助第三方库ASIHTTPRequest实现iOS应用...

    IOS 程序使用urlconnection连接服务器方法

    本文将详细介绍如何使用`NSURLConnection`在iOS程序中实现与服务器的有效交互。 #### 二、基础知识 1. **NSURLSession**:`NSURLSession`是苹果推荐的最新网络通信框架,它提供了异步的方式处理网络请求,并且支持...

    iOS 同步异步网络请求

    在iOS开发中,网络请求是应用与服务器交互的基础,用于获取或发送数据。常见的网络请求方式包括POST和GET,同步和异步操作则涉及到请求执行的模式。下面将详细讲解这两种请求方式以及同步异步的概念。 1. **GET请求...

    swift-利用开源库CocoaHttpServer搭建iOS手机本地服务器

    Swift开发中的网络库CocoaHttpServer是一个强大的工具,它允许开发者在iOS设备上快速搭建本地服务器,以便进行数据测试、模拟API交互或者实现离线应用的功能。CocoaHttpServer是用Objective-C编写的,但因其良好的跨...

    天气预报 iPhone 服务器交互

    这些库简化了HTTP请求的处理,包括GET和POST方法,用于从服务器获取或发送数据。 2. **JSON解析**:天气预报数据通常以JSON(JavaScript Object Notation)格式返回,因此我们需要解析JSON数据。在iOS中,可以使用...

    模拟post、put、head、get、patch、link、lock等多种请求

    在IT行业中,网络请求是应用程序与服务器交互的基础。本文将深入探讨标题中提及的HTTP请求方法,包括POST、PUT、GET、HEAD、PATCH、LINK和LOCK,并结合描述中提到的跨平台支持,如Window、iOS和Linux,以及可能使用...

    ios 中http协议的POST方法

    在iOS开发中,HTTP协议是应用层网络通信的基石,特别是在构建移动应用时,与服务器进行数据交互常常离不开GET和POST这两种请求方法。POST方法在iOS中的应用广泛,主要用于发送数据到服务器,例如用户注册、登录验证...

    c++封装curl,实现get,post,download

    `curlpp`是libcurl的一个C++包装器,它提供了更方便、面向对象的API,简化了与libcurl的交互。要使用`curlpp`,你需要先将其安装到你的开发环境中,通常可以通过包管理器或者从源代码编译。 **1. GET请求** GET请求...

    Web Request for iOS

    在iOS开发中,网络请求是应用与服务器交互的基础,用于获取或发送数据。"Web Request for iOS" 是一个专门针对iOS平台的网络请求库,它提供了丰富的功能来处理各种HTTP请求,包括POST、GET、文件上传以及SOAP服务的...

    ios-基于iOS的AFNetworking和MJExnsion网络封装请求.zip

    在iOS开发中,网络请求是应用与服务器交互的基础,它使得我们可以获取或发送数据到远程服务器。本资源“ios-基于iOS的AFNetworking和MJExnsion网络封装请求.zip”提供了一个利用AFNetworking和MJExtension进行网络...

    SSM整合 完美支持RESTful(Jsp和客户端 android ios ).docx

    - SpringMVC:Spring的一个模块,处理HTTP请求,实现了MVC模式,与视图和模型进行交互。 - MyBatis:是一个轻量级的持久层框架,它将SQL语句与Java代码分离,简化了数据库操作。 在配置SSM整合时,首先需要创建一...

    UniApp中封装request网络请求包含GET、POST、PUT、DELETE等

    在移动应用开发中,网络请求是必不可少的一部分,用于与服务器进行数据交互。UniApp是一个跨平台的开发框架,它允许开发者使用一套代码实现多端应用,包括iOS、Android、H5以及微信小程序等。本教程将详细介绍如何在...

    ios 利用http 向服务器请求数据

    在iOS开发中,与服务器进行数据交互是必不可少的步骤,HTTP协议是最常用的数据传输方式之一。本教程将重点讲解如何利用HTTP在iOS应用中执行GET和POST请求,包括同步和异步的方式,这对于初学者来说是非常基础且重要...

Global site tag (gtag.js) - Google Analytics