最近在学习AFNetwork,非常好的网络框架,能节省很多时间。不过请求网络数据时报错1016,3840.

这两个错误网上解决方法很多,http://blog.csdn.net/huifeidexin_1/article/details/38844535,这篇博客的解决方法非常好。也确实起了效果,不过接下来问题来了。

比如我要实现最容易的登录功能,用http协议,我把账号密码传给服务器,如果验证成功,它传个1给我就行了。

+(BOOL)getLoginByUser:(NSString *)username andPass:(NSString *)password
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; NSDictionary *dict = @{@"nickName":username,@"password":password};
[manager GET:url parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSData *doubi = responseObject;
NSString *shabi = [[NSString alloc]initWithData:doubi encoding:NSUTF8StringEncoding];
NSLog(@"%@",shabi);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}]; return YES;
}

因为加了"text/html",所以传过来的是一个html页面,1在body里。即...<body>1</body>...

但是我只要1就行了,如果自己在写算法把1提取出来就太诡异了,并不可行。

后来才发现是我一开始就理解有问题。上面的方法处理的就是服务器传"text/html"的解决方法。用于爬虫或者web直接显示页面等情况。

而我要的就是json数据

{"result": "1"}

这也正符合了AFNetwork默认支持的类型,其实ios开发不怎么用到"text/html"类型。大部分情况下是json,所以这也是AFNetwork默认支持的。

这又回到了刚开始的时候,报了1016错误。

其实错误是服务器的原因,服务器要指定格式,http response的content-type。它要设置为json,那么就不会报1016错误了。

+(BOOL)getLoginByUser:(NSString *)username andPass:(NSString *)password
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSDictionary *dict = @{@"nickName":username,@"password":password};
[manager GET:url parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *responseValue = [responseObject objectForKey:@"result"];
NSLog(@"%@",responseValue); } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}]; return YES;
}

这个输出结果就是1。

所以遇到了错误还是要多想想,即然自己要的就是json数据,干嘛还要add"text/html",应该要想到其实是服务端的问题。

AFNetwork2.0在报错1016,3840的解决方法及一些感悟的更多相关文章

  1. git提交待审核代码,报错没有change-id的解决方法

    git提交是报错没有change-id的解决方法: 1.先仔细查看报错内容,查出是哪天提交记录缺少change-id 2.如果是最近的一条缺少,则直接执行git commit --amend &quo ...

  2. 使用git clone 报错curl56 errno 10054解决方法

    使用git clone 报错curl56 errno 10054解决方法 ----------------版权声明:本文为CSDN博主「伽马射线爆」的原创文章,遵循CC 4.0 BY-SA版权协议,转 ...

  3. mysql source导入报错ERROR 1366的解决方法

    文件是utf8的,数据库表是utf8的,为什么客户端导入会报错呢? 发现客户端用的是gbk的 改为utf8后正常 SHOW VARIABLES LIKE 'character%'; +-------- ...

  4. MapReduce 程序运行报错 java.lang.ClassNotFoundException解决方法

    在创建自定义的Mapper时候,编译正确,但上传到集群执行时出现错误: 11/16/05 22:53:16 INFO mapred.JobClient: Task Id : attempt_20111 ...

  5. 服务端返回的json数据,导致前端报错的原因及解决方法

    前言 最近在开发的过程中遇到了一个问题:后端传过来的json字符串不是标准的json字符串 导致报错的原因 后端传过来的json字符串中包含一些不标准的字符或错误的引号嵌套 1)\n 2) \r 3) ...

  6. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3' ...

  7. Selenium打开IE报错“Protected Mode settings...”解决方法

    最近在使用Selenium打开IE浏览器碰到以下报错:

  8. mybatis问题。foreach循环遍历数组报错情况,及其解决方法

    根据条件查询数据列表,mybatis查询代码如下 如果只查询属于特定部门拥有的数据权限.这需要用 String[ ] codes保存当前部门及其子部门的部门编码. 所以需要在mybatis中遍历编码数 ...

  9. 163源报错Hash Sum mismatch 解决方法

    Ubuntu server 用的163的源,报错: W: Failed to fetch http://mirrors.163.com/ubuntu/dists/precise-updates/mai ...

随机推荐

  1. Elasticsearch 文件目录解释

    下载后解压的Elasticsearch中,有以下几个基本的目录: home---这是Elasticsearch解压的目录 bin---这里面是ES启动的脚本 conf---elasticsearch. ...

  2. elasticsearch中的API

    elasticsearch中的API es中的API按照大类分为下面几种: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作 查看A ...

  3. 【Remoting】.Net remoting方法实现简单的在线升级(下篇:重启exe)

    一.前言      上篇运用了.Net Remoting技术解决了本地与服务器版本对比,并下载更新包的过程. 本篇主要是应用Process,来实现重启程序的过程. 情景假设:       Revit2 ...

  4. 部署Eclipse中的Web项目到Tomcat服务器运行

    用Eclipse开发Web项目时,可以通过Tomcat服务器运行Web项目,此时Web项目被部署在[WorkSpace]\.metadata\.plugins\org.eclipse.wst.serv ...

  5. lua编译出so文件

    把lua编译出so文件 http://superuser.com/questions/557884/getting-error-recompile-with-fpic http://guiquanz. ...

  6. CARP

    CARP :Common Access Redundancy Protocol共用地址冗余协议Common Access Redundancy Protocol,或简称 CARP 能够使多台主机共享同 ...

  7. 阿里云centos6.5下搭建javaWeb运行环境

    一.主要方法 http://blog.csdn.net/hdfyq/article/details/38456981 上面文章的步骤至mysql安装完毕以及设置(记住 update user set ...

  8. 从零开始学Python04作业源码:模拟ATM电子银行(仅供参考)

    bin目录:程序启动入口 ATM_start.py: #!/usr/bin/python # -*- coding: utf-8 -*- # 模拟ATM电子银行+登录账户权限控制+管理员管理模块 # ...

  9. Codeforces Round #369 (Div. 2)---C - Coloring Trees (很妙的DP题)

    题目链接 http://codeforces.com/contest/711/problem/C Description ZS the Coder and Chris the Baboon has a ...

  10. 【java学习系列】 Android第一本书《第一行代码》

    开始Java的学习,从Android,开始吧.<第一代码>开始阅读和调试demo例子. 下面是 <第一行代码>的思维导图: