//
// ViewController.m
// 03-post上传json
//
// Created by jerry on 15/10/10.
// Copyright (c) 2015年 jerry. All rights reserved.
// #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 1. url
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/post/postjson.php"]; // 2. post Request
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy: timeoutInterval:2.0f];
// 2.1 set HTTPMethod
request.HTTPMethod = @"POST"; // 2.2 UpLoad JSON Type Data
// 序列化,将NSArray/NSDictionary转换成特殊数据类型的二进制数据。
// 反序列化 将服务器返回的二进制数据转成NSArray/NSDictionary
NSDictionary *dict1 = @{@"name":@"xiaofeng",@"age":@""};
NSDictionary *dict2 = @{@"name":@"xiaosan",@"age":@""}; NSArray *array = @[dict1,dict2];
/**
- Top level object is an NSArray or NSDictionary
顶级节点是字典或者数组
- All objects are NSString, NSNumber, NSArray, NSDictionary, or NSNull
所有的对象是 NSString, NSNumber, NSArray, NSDictionary, or NSNull
- All dictionary keys are NSStrings
所有字典的key 是 NSString
- NSNumbers are not NaN or infinity
NSNumbers必须指定,不能是无穷大 + (BOOL)isValidJSONObject:(id)obj;
用来检验给定的对象是否能够被序列化
*/
// NSString *str = @"{\"username\":\"xiangfeng\",\"age\":\"18\"}";
if (![NSJSONSerialization isValidJSONObject:array]) {
NSLog(@"格式不正确,不能被序列化!");
return ;
}
request.HTTPBody = [NSJSONSerialization dataWithJSONObject:array options: error:NULL]; // connection
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
// 反序列化的一个处理
id result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",result);
}]; } - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

POST 上传 JSON 数据的更多相关文章

  1. [iOS 多线程 & 网络 - 2.6] - 使用POST上传JSON数据 & 多值参数

    A.上传JSON 1.思路: 必须使用POST方法才能上传大量JSON数据 设置请求头:设置Content-Type 设置请求体,JSON实际相当于字典,可以用NSDictionary NSJSONS ...

  2. springmvc04-文件上传-JSON数据

    文件上传部分: 1, 导入commons-fileupload-1.2.2.jar commons-io-2.4.jar 两个jar包. 2, 在主配置文件中,添加如下信息 <!-- 文件上传- ...

  3. php curl 上传json数据

    PUT $data = array('username'=>'dog','password'=>'tall'); $data_json = json_encode($data); $ch ...

  4. C语言采用socket实现http post方式上传json数据

    1.按照HTTP协议发送请求: http POST 报文格式 http 报文是面向文本的. 报文分为:请求报文和响应报文 请求报文由:请求行,请求头部,空行和请求数据四个部分组成. <1.请求行 ...

  5. HttpUrlConneciton上传JSON数据

    try { //创建连接 URL url = new URL(url); HttpURLConnection connection = (HttpURLConnection) url.openConn ...

  6. xUtils怎么post请求上传json数据

    InfoSmallCodeBinding smallCode = new InfoSmallCodeBinding(); smallCode.setSmallCode("测试"); ...

  7. (24)ajax上传json格式的数据

    urs.py from django.conf.urls import urlfrom django.contrib import adminfrom app01 import viewsurlpat ...

  8. Retrofit 2.0 超能实践(三),轻松实现文件/多图片上传/Json字符串

    文:http://blog.csdn.net/sk719887916/article/details/51755427 Tamic 简书&csdn同步 通过前两篇姿势的入门 Retrofit ...

  9. Retrofit 2.0 轻松实现多文件/图片上传/Json字符串/表单

    如果嫌麻烦直接可以用我封装好的库:Novate: https://github.com/Tamicer/Novate 通过对Retrofit2.0的前两篇的基础入门和案例实践,掌握了怎么样使用Retr ...

随机推荐

  1. day27 封装

    广义上的面向对象的封装: 代码的保护,面向对象思想本身就是一种封装 只让自己的对象调用自己类的方法 狭义的封装: 面向对象的三大特性之一,其他两个是继承和多态. 属性和方法都可以藏起来不让你看到 cl ...

  2. 洛谷P1776 宝物筛选_NOI导刊2010提高(02)(多重背包,单调队列)

    为了学习单调队列优化DP奔向了此题... 基础的多重背包就不展开了.设\(f_{i,j}\)为选前\(i\)个物品,重量不超过\(j\)的最大价值,\(w\)为重量,\(v\)为价值(蒟蒻有强迫症,特 ...

  3. Red Hat 6.3 下安装 nginx-1.7.4

    一.安装准备 在Redhat系统下,没有CentOS那样使用yum安装依赖包等,所以接下来主要记录一下如何一步一步安装Nginx相关的依赖库. 下面就正式安装,由于安装Nginx需要依赖gcc-c++ ...

  4. A1001. A+B Format

    Calculate a + b and output the sum in standard format -- that is, the digits must be separated into ...

  5. XML:特殊字符转换

    <     < 小于号 >     > 大于号 &    & 和 &apos;   ' 单引号 "   " 双引号 实体必须以符号& ...

  6. Qsort(c)_Sort(c++)用法

    Sort函数(c) (来自codeblocks) stdlib.h _CRTIMP void __cdecl qsort(void*, size_t, size_t, int (*)(const vo ...

  7. python在数据处理中常用的模块之matplotlib

    <利用python进行数据分析>读书笔记--第八章 绘图和可视化 python 画子图(add_subplot & subplot)

  8. 结尾非零数的奇偶性(问题来源于PythonTip)

    给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性.如果为奇数输出1,偶数则输出0.. 例如:L=[2,8,3,50] 则输出:0 L = [2,8,3,50] c2 = 0 ...

  9. promise用法详解

    es6的promise可谓是异步书写的一大福音,过去异步js书写是函数嵌套函数的方式,promise出现后书写异步js代码就变得美观得多了 以前的写法:回调函数不停嵌套 ajax('/banners' ...

  10. selenium_采集药品数据2_采集所有表格

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...