AFNetworking是开源代码排名第一的开源库。

 GET请求的请求正文 一般都是明文显示的,携带的数据量小。
POST用于处理复杂的业务,并不用明文的请求,其实POST请求可以携带更多的参数,只是不明文显示,所以我们在有的时候,有的网址你是看不到GET请求的网址有?以及?后面携带的明文请求数据。
 
测试的网址:
这两个测试的网址,可以点击进去,看看数据。打开抓包工具,可以看到相关的信息:
 
这里是请求携带的信息。也就是所谓的请求正文。
 #import "ViewController.h"
#import "AFNetworking.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; // 设置回复内容信息 这里我们一般需要这个设置,不然我们解析网络的时候会出错
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"]; AFHTTPRequestOperation *httpOperation = [manager GET:@""
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) { }
failure:^(AFHTTPRequestOperation *operation, NSError *error) { }];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

拷贝GET方法的实现部分,然后相应的修改

对第二个网址进行一个简单的GET请求,这里的警告 是我忘记删除前面不用的引用的指针变量了:

看抓包工具,是Json Text:

但是有时候项目中请求的格式不是JSON Text ,那么我们怎么处理呢?AFNetworking提供给我们的方法 请求序列化 ,在Networking.m中可以找到封装好的方法:

但是我们代码中不是用这个方法,而是直接用原类库中的方法:

manager.requestSerializer = [AFHTTPRequestSerializer serializer];

当我们这么设置的时候:

    //请求的序列化
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
//我们 还可以 请求的 结果 序列化 专业的说法:设置回复的序列化
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

那么返回的responseObject就是二进制数据:

然后通过字符串转格式,转为文本格式,返回的就是JSON数据:

如果在之前,请求的回复序列化上 ,直接设置为AFJOSNResponseSerializer 就直接输出的是 JSON数据的文本格式:

如果项目中返回的数据是xml数据,那么可以用这个设置返回的序列格式:

接下来演示一下POST请求:

先打开一个网址链接: http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo

>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<

然后抓包:

 看的出来这个网页是POST请求,携带的参数就是我随意输入的手机号码。但是在请求的正文看不到后面的 ?以及 ?后面的参数。因为这个POST请求正文隐藏起来了,不设置为明文。
然后我们来用POST请求本文开头提供的那个网址:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo
获取请求参数数据。
Copy Request就能获取mobileCode=18720988888&userID=
但是要注意,这个返回的是xml数据:
 
 如果还是用manager.responseSerializer = [AFJSONResponseSerializer serializer];是会出错的,想试一试可以试试,返回错误是因为,那个网站返回的事xml数据,但是解析序列化用的是json是解析不了的,所以要改为manager.responseSerializer = [AFXMLParserResponseSerializer serializer];就不会出错了:
 
 
 
 
 
 
 
 
 
 
 
 
 
 

GET/POST请求的使用《极客学院 --AFNetworking 2.x 网络解析详解--2》学习笔记的更多相关文章

  1. 网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

    网络请求的基本知识   我们网络请求用的是HTTP请求 Http请求格式:请求的方法,请求头,请求正文 Http请求的Request fields:请求的头部,以及被请求头部的一些设置 Http请求的 ...

  2. scrapy爬取极客学院全部课程

    # -*- coding: utf-8 -*- # scrapy爬取极客学院全部课程 import scrapy from pyquery import PyQuery as pq from jike ...

  3. 基于requests实现极客学院课程爬虫

    背景 本文主要是为了完成极客学院课程<Python 单线程爬虫>中讲师布置的实战作业. 开发环境 操作系统:windows 10 Python :Python 2.7 IDE:PyChar ...

  4. python scrapy版 极客学院爬虫V2

    python scrapy版 极客学院爬虫V2 1 基本技术 使用scrapy 2 这个爬虫的难点是 Request中的headers和cookies 尝试过好多次才成功(模拟登录),否则只能抓免费课 ...

  5. python极客学院爬虫V1

    定向爬取极客学院视频,原本只有年费VIP只能下载,经过分析,只要找个免费体验VIP即可爬取所有视频 涉及的基本技术:python xpath 正则 com+ 通过python调用迅雷从组件,实现自动创 ...

  6. 【极客学院出品】Cocos2d-X系列课程之九-BOX2D物理引擎

    Cocos2d-x 是时下最热门的手游引擎,在国内和国外手机游戏开发使用的份额各自是70%和25%,在App Store的top10中,有7个是用它开发的. 本节课程为Cocos2d-x系列课程之九, ...

  7. 【极客学院-idea教程】

    极客学院idea教程: http://whudoc.qiniudn.com/2016/IntelliJ-IDEA-Tutorial/index.html

  8. maven介绍 极客学院

    来自极客学院 Apache Maven 是一套软件工程管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven - 概述 M ...

  9. 极客学院年VIP卡原价260的F码,200出售

    F码是中国最大的IT职业在线教育平台——极客学院推出的VIP时间兑换码,凭此可在极客学院官网兑换年VIP,畅享平台上所有IT技术课程. 购买请点击 http://www.bejson.com/othe ...

随机推荐

  1. Xcode-调试断点不能停在代码区终极解决方案

    转发 调试断点不能停在代码区终极解决方案:  http://mobile.51cto.com/iphone-390082.htm

  2. Android学习笔记之图片轮播...

    PS:一个bug又折腾了一个下午....哎... 学习内容: 1.Android利用ViewPager和PagerAdapter实现图片轮播... 2.使用反射机制获取Android的资源信息... ...

  3. 还在抱怨JS文件里没有智能提示吗, VS10以及以上都可以 .NET

    1.打开JS文件 2.编写$.我们会发现什么也没有 3.托进来 4.有了哈 保存头部代码新建JS都贴上去.

  4. 如何彻底的卸载和删除Windows service

    最近遇到很头疼的问题,安装到服务器的Windows Service卸载的时候出错了,结果在服务列表中就一直驻留,并且系统进程一直在运行,怎么都杀不掉. 最后终于找到办法了: 1.常规做法,批处理命令卸 ...

  5. web面试题大全

    $HTML, HTTP,web综合问题 常见排序算法的时间复杂度,空间复杂度 前端需要注意哪些SEO web开发中会话跟踪的方法有哪些 <img>的title和alt有什么区别 docty ...

  6. struts.custom.i18n.resources国际化

    每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化 首先在struts.properties文件中加入以下内容:struts.custom ...

  7. 重构第29天 去除中间人对象(Remove Middle Man)

    理解:本文中的”去除中间人对象”是指把 在中间关联而不起任何其他作用的类移除,让有关系的两个类直接进行交互. 详解:有些时候在我们的代码会存在一些”幽灵类“,设计模式大师Martin Fowler称它 ...

  8. Winform开发的界面处理优化

    在Winform开发中,客户体验是个很好的参考性指标,如果一个功能使用的时候感觉很流畅,说明我们的程序执行效率还不错,但是随着数据的真多,原先可能流程的地方可能会变得比较卡,这时候就需要追本索源,找到 ...

  9. sencha panel的头header上添加刷新按钮

    var plet3=Ext.create('portaltest3.view.Portlet',                   { title: '提醒',                   ...

  10. csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)

    sql script code: CREATE TABLE DuCardType ( CardTypeId INT IDENTITY(1,1) PRIMARY KEY, CardTypeName NV ...