23-向服务器发送JSON、url转码、多值参数

2024-01-13 12:58

本文主要是介绍23-向服务器发送JSON、url转码、多值参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1)发送json给服务器

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{// 1.URLNSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/order"];// 2.请求NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];// 3.请求方法request.HTTPMethod = @"POST";// 4.设置请求体(请求参数)// 创建一个描述订单信息的JSON数据NSDictionary *orderInfo = @{@"shop_id" : @"1243324",@"shop_name" : @"啊哈哈哈",@"user_id" : @"899"};
// 把字典转化成NSData
NSData *json = [NSJSONSerialization dataWithJSONObject:orderInfo options:NSJSONWritingPrettyPrinted error:nil];request.HTTPBody = json;// 5.设置请求头:这次请求体的数据不再是普通的参数,而是一个JSON数据[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];// 6.发送请求
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {if (data == nil || connectionError) return;NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];NSString *error = dict[@"error"];if (error) {[MBProgressHUD showError:error];} else {NSString *success = dict[@"success"];[MBProgressHUD showSuccess:success];}}];
}

2)URL的转码问题
url中不能包含中文,所以呢要对中文进行转码

NSString *urlStr = [NSString stringWithFormat:@"http://localhost/login?username=喝喝&pwd=123"];
urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

3 )向服务器发送多值参数
http://localhost:8080/MJServer/weather?place=beijing&place=shenzhen&place=ss 这种类型就是多值参数。其返回内容是:{“weathers”:[{“city”:”beijing”,”status”:”晴转多云”},{“city”:”shenzhen”,”status”:”晴转多云”},{“city”:”ss”,”status”:”晴转多云”}]}

代码:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/weather"];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];// 设置请求ffrequest.HTTPMethod = @"POST";// 设置请求体(请求参数)NSMutableString *param = [NSMutableString string];[param appendString:@"palce=beijing"];[param appendString:@"&place=tianjin"];[param appendString:@"&place=luyi"];param = [NSMutableString stringWithString:[param stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; //  如果需要http encode的话,加上此句request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];// 发送请求[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {if (data == nil || connectionError) {NSLog(@"HAVE A ERROR");}NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];NSLog(@"%@",dict);NSString *error = dict[@"error"];if (error) {[MBProgressHUD showError:error];}else{NSLog(@"%@",dict);}}];
}

这篇关于23-向服务器发送JSON、url转码、多值参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/601528

相关文章

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

MySQL 中的 JSON_CONTAIN用法示例详解

《MySQL中的JSON_CONTAIN用法示例详解》JSON_CONTAINS函数用于检查一个JSON文档中是否包含另一个JSON文档,这篇文章给大家介绍JSON_CONTAINS的用法、语法、... 目录深入了解 mysql 中的 jsON_CONTAINS1. JSON_CONTAINS 函数的概述2

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty