XMLDictionary 解析的使用
#import "XMLDictionary.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
那么这些误区是怎么出现的呢?先看看一下对http的解释
一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE
URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询 资源信息,而POST一般用于更新 资源信息(个人认为这是GET和POST的本质区别,也是协议设计者的本意,其它区别都是具体表现形式的差异 )。
再进一步了解下他们两个的区别:
1. GET使用URL或Cookie传参。而POST将数据放在BODY中。
2. GET的URL会有长度上的限制,则POST的数据则可以非常大。
3. POST比GET安全,因为数据在地址栏上不可见。
NSString *path=@"http://1.studyios.sinaapp.com/gyxy.php?a=qq";
// 创建请求对象
NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:path]];
// 1.创建一个会话对象
NSURLSession *session=[NSURLSession sharedSession];
// 2.通过请求信息,获取数据结构(根据会话创建一个task 发送请求)。
// completionHandler 回调 data响应体信息 response:响应头信息,主要是对服务器端的描述error:错误信息,如果请求失败,则error有值
NSURLSessionDataTask *task=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSArray *arr=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
NSLog(@"%@",arr);
}];
// 执行任务
[task resume];
@interface ViewController : UIViewController<UITextFieldDelegate>
@property(strong,nonatomic) UITextField *txtInfo;
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.txtInfo=[[UITextField alloc] initWithFrame:CGRectMake(100, 100, 150, 44)];
self.txtInfo.borderStyle=1;
self.txtInfo.delegate=self;
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
NSString *path=[NSString stringWithFormat:@"http://1.studyios.sinaapp.com/gyxy.php?a=%@&b=bbb&c=ccc",self.txtInfo.text]
;
NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:path]];
// 1.创建一个会话对象
NSURLSession *session=[NSURLSession sharedSession];
// 2.通过请求信息 获取数据结构
NSURLSessionDataTask *task=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
// NSLog(@"%@",data);
NSArray *arr= [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
NSLog(@"%@",arr);
}];
[task resume];
return YES;
使用NSURLSession发送POST请求的方法和NSURLConnection类似,整个过程如下:
1)确定请求路径(一般由公司的后台开发人员以接口文档的方式提供)
2)创建 可变的 请求对象(因为需要修改),此步骤不可以省略
3)修改请求方法为POST
4)设置请求体,把参数转换为二进制数据并设置请求体
5)创建会话对象(NSURLSession)
6)根据会话对象创建请求任务(NSURLSessionDataTask)
// day16-2
//
// Created by tlh on 16/3/28.
// Copyright © 2016年 lamco. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *path=@"http://1.studyios.sinaapp.com/mypost.php";
NSURL *url=[NSURL URLWithString:path];
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];
// post请求
request.HTTPMethod=@"POST";
// 参数
NSString *param=[NSString stringWithFormat:@"can1=test&can2=test1"];
// 将参数转换成data类型数据
NSData *dataparam=[param dataUsingEncoding:NSUTF8StringEncoding];
// request的参数的主体
request.HTTPBody=dataparam;
NSURLSession *session=[NSURLSession sharedSession];
NSURLSessionDataTask *task=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error]);
}];
[task resume];
转载于:https://www.cnblogs.com/tianlianghong/p/5330955.html
XMLDictionary 解析的使用相关推荐
- XMLDictionary iOS的XML处理包
1.概述: XMLDictionary 提供一种简单的方法实现 iOS 和 Mac OS X 下解析和生成 XML 的方法.XMLDictionary 将 XML 转成 NSDictionary ,也 ...
- java xml开源操作类,xml解析和操作的开源工具项目涵盖java c++ php 等语言
XML解析器-Xerces XML操作库-dom4j XML文档解析器-Digester J2ME-的XML-解析器-kXML XML解析类库-MXP1 XML解析器-LibX ...
- golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用
RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...
- List元素互换,List元素转换下标,Java Collections.swap()方法实例解析
Java Collections.swap()方法解析 jdk源码: public static void swap(List<?> list, int i, int j) {// ins ...
- 条形码?二维码?生成、解析都在这里!
二维码生成与解析 一.生成二维码 二.解析二维码 三.生成一维码 四.全部的代码 五.pom依赖 直接上代码: 一.生成二维码 public class demo {private static fi ...
- Go 学习笔记(82)— Go 第三方库之 viper(解析配置文件、热更新配置文件)
1. viper 特点 viper 是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式.支持特性功能如下: 设置默认值 读取 JSON.TOML.Y ...
- Go 学习笔记(77)— Go 第三方库之 cronexpr(解析 crontab 表达式,定时任务)
cronexpr 支持的比 Linux 自身的 crontab 更详细,可以精确到秒级别. 1. 实现方式 cronexpr 表达式从前到后的顺序如下所示: 字段类型 是否为必须字段 允许的值 允 ...
- mybatis配置文件解析
mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...
- 谷歌BERT预训练源码解析(二):模型构建
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_39470744/arti ...
最新文章
- C#进阶系列——WebApi 接口参数不再困惑:传参详解
- elasticsearch index 之 put mapping
- 仿QQ联系人的TableView的折叠与拉伸
- c语言行列倒置算法,循环行列的元素倒置。求指点
- 服务器采购框架合同协议书范本,手写一个满足WSGI协议的Server
- SpringBoot ——Spring Boot日志配置
- 从一个简单的Java单例示例谈谈并发
- 如何使用TCP/IP开发网络程序
- 荣耀20 Pro正面渲染图曝光:开孔全面屏设计+后置四摄
- Hadoop4——HA集群的搭建(高可用)
- cant connect local mysql to_连接Mysql提示Can't connect to local MySQL server through socket的解决方法...
- HBase 1.3(NOSQL) 发布,性能大幅提升
- linux文件实时同步(rsync+inotiy)
- Learning Enriched Features for Real Image Restoration and Enhancement Paddle模型复现93号(1)
- 如何对一个网页进行测试
- 2017最新苹果 APPLE ID注册流程
- Python滚动条如果滚不动
- 了不起的盖茨比读后感---Java程序员学Python学习笔记(二)
- 2012年5月后QQ空间农场Farmkey最新计算字符串
- win7 jdk install and config