AFNetworking2.0后 进行Post请求
本文以新浪微博的Oauth认证为样例进行Post请求的演示
以下直接上代码:
#import "ViewController.h"
#import "AFNetworking.h" @interface ViewController ()<UIWebViewDelegate,NSURLConnectionDelegate> @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString* urlStr = @"https://api.weibo.com/oauth2/authorize?client_id=3145625561&redirect_uri=http://www.baidu.com&display=mobile"; //将字符串转化为URL
NSURL* url = [NSURL URLWithString:urlStr];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];
UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame];
[webView loadRequest:request];
webView.delegate = self;
[self.view addSubview:webView];
} - (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{ NSURL* resultStr = [request URL];
NSString* tempStr = [resultStr absoluteString];
NSLog(@"%@",resultStr);
//推断字符串中是否包括code=
NSRange range = [tempStr rangeOfString:@"code="];
//假设不包括会返回为真,因此此处取反,就是说不为空的时候会为假,取反之后为真
if ( !(range.location == NSNotFound)) {
//absoluteString作用是将NSURL类型转化为NSString
NSString* tempStr = [resultStr absoluteString];
//componentsSeparatedByString
NSArray* codeArr = [tempStr componentsSeparatedByString:@"="]; NSLog(@"%@",codeArr);
NSString* code = [codeArr objectAtIndex:1];
NSLog(@"code = %@",code);
//之后在此处下一行加入调用获取access_token值的方法即httpRequest:(NSString*)codeStr
[self httpPostRequest:code];
} return YES;
} - (void)httpPostRequest:(NSString *)code
{
/****本文主要解说内容*****/
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
NSDictionary *parameters = @{@"client_id":@"3145625561",
@"client_secret":@"0a61cc8a017fa8ba6c98532fefa3c29c",
@"grant_type":@"authorization_code",
@"code":code,
@"redirect_uri":@"http://www.baidu.com"}; [manager POST:@"https://api.weibo.com/oauth2/access_token?" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Success:%@" , responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error); }]; }
特别提示一下:
manager.responseSerializer.acceptableContentTypes = [NSSet
setWithObject:@"text/plain"];这里假设返回是JSON的话要用 text/plain 不然会报错。
AFNetworking2.0后 进行Post请求的更多相关文章
- AFNetworking2.0简易GET,POST请求封装以及使用
AFNetworking2.0简易GET,POST请求封装以及使用 AFNetworking不用我赘述其强大性,本人仅仅做了非常简易的封装,解决了有时候请求出错的问题,提供源码给大家. 封装源码库下载 ...
- AFNetworking2.0源代码解析
写在前面给大家推荐一个不错的站点 点击打开链接 本文測试样例源代码下载地址 近期看AFNetworking2的源代码.学习这个知名网络框架的实现.顺便梳理写下文章. AFNetworking的代码还在 ...
- AFNetworking2.0源码解析<一>
本篇先看看AFURLConnectionOperation,AFURLConnectionOperation继承自NSOperation,是一个封装好的任务单元,在这里构建了NSURLConnecti ...
- thinkjs升级到3.0后的图片上传
似乎当thinkjs升级到3.0后,才接手了一个项目.只是在实际运用过程中,还是发现了与2.2的些许差别——今天先分享关于图片上传的一些问题. 1.上传文件,我们选择了jQuery的插件:http:/ ...
- JAVA获取客户端请求的当前网络ip地址(附:Nginx反向代理后获取客户端请求的真实IP)
1. JAVA获取客户端请求的当前网络ip地址: /** * 获取客户端请求的当前网络ip * @param request * @return */ public static String get ...
- 启动Jmeter4.0 后弹出命令窗口提示信息是什么意思?
启动Jmeter4.0 后弹出命令窗口提示信息: =========================================================================== ...
- vue-cli 3.0之跨域请求代理配置及axios路径配置
vue-cli 3.0之跨域请求代理配置及axios路径配置 问题:在前后端分离的跨域请求中,报跨域问题 配置: vue.config.js: module.exports = { runtimeCo ...
- 为什么FFT时域补0后,经FFT变换就是频域进行内插?
应该这样来理解这个问题: 补0后的DFT(FFT是DFT的快速算法),实际上公式并没变,变化的只是频域项(如:补0前FFT计算得到的是m*2*pi/M处的频域值, 而补0后得到的是n*2*pi/N处的 ...
- 升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错(引用他人的)
升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错 The resource could not be loaded because the App Transport Sec ...
随机推荐
- Jetty总览
Jetty入门 基本功能介绍 配置概览-怎么配置Jetty 配置概览-须要配置什么 Jetty配置 部署到Jetty 配置上下文 配置连接器 配置安全 配置JSP支持 Jetty管理指导 启动Jett ...
- C#超级有用的一种类型—匿名类型
顾名思义 匿名类型就是没有名字的类型.当一个新的匿名对象定义与前面已经存在的类型定义的内部变量类型同样时,编译器就会仅仅生成一个类定义,而不是各一个. 匿名类型对象中仍然能够再包括匿名对象. 在C#3 ...
- Delphi + Asm - TBits类的学习
技术交流,DH讲解. 在D2010的classes中有个TBits类,这个类主要是位操作的. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 TBits = class privat ...
- JavaScript进阶(三) 值传递和引用传递
从C语言开始 有时候讲一些细节或是底层的东西,我喜欢用C语言来讲,因为用C更方便来描述内存里面的东西.先举一个例子,swap函数,相信有一些编程经验的人都见识过,声明如下,函数体我就不写了,各位脑补一 ...
- HDU 3397 Sequence operation(线段树)
HDU 3397 Sequence operation 题目链接 题意:给定一个01序列,有5种操作 0 a b [a.b]区间置为0 1 a b [a,b]区间置为1 2 a b [a,b]区间0变 ...
- Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈
通过调用微信提供的API接口,我们可以很方便的在应用中发送消息给微信好友,或者分享到朋友圈.在微信开发平台(https://open.weixin.qq.com)里,提供了详细的说明文档和样例.但由于 ...
- 研究一下TForm.WMPaint过程(也得研究WM_ERASEBKGND)——TForm虽然继承自TWinControl,但是自行模仿了TCustomControl的全部行为,一共三种自绘的覆盖方法,比TCustomControl还多一种
先擦除背景: procedure TCustomForm.WMEraseBkgnd(var Message: TWMEraseBkgnd); begin if not IsIconic(Handle) ...
- C# MVC 自学笔记—2 MVC Movie简介
MVC Movie是微软官方的一个MVC入门项目,我们可以跟着这个项目来实践入门 这是官方地址 http://www.asp.net/mvc/tutorials/mvc-4/getting-start ...
- cocos2d-x lua 内存回收
使用cocos2d-x lua架构,游戏中存在两种内存回收方式. 1.cocos2d-x 本身内存回收 PS:假设在lua在创建一个类,继承cocos2d-x的一个类A,则该A也遵循cocos2d-x ...
- DotNetBar.Bar控制Y顺序控制方向
DotNetBar.Bar控件Y方向上的顺序控制 老帅 控件DevComponents.DotNetBar.Bar是能够有多种用途的.能够作为容器,也能够作为工具条,不管做什么,在Y方向上 ...