iphone网络交互json实现
/**
* url:请求地址
* verb:请求方式
* parameters:请求参数
*/
+(NSString *)sendRequestTo:(NSURL *)url usingVerb:(NSString *)verb withParameters:(NSDictionary *)parameters{
NSString *jsonStr = nil;
NSData *body = nil;
NSMutableString *params = nil;
NSString *contentType = @"text/html; charset=utf-8";
NSURL *finalURL = url;
if(nil != parameters){
params = [[NSMutableString alloc] init];
for(id key in parameters){
NSString *encodedkey = [key stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
CFStringRef value = (CFStringRef)[[parameters objectForKey:key] copy];
CFStringRef encodedValue = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, value,NULL,(CFStringRef)@";/?:@&=+$", kCFStringEncodingUTF8);
[params appendFormat:@"%@=%@&", encodedkey, encodedValue];
CFRelease(value);
CFRelease(encodedValue);
}
[params deleteCharactersInRange:NSMakeRange([params length] - 1, 1)];
}
//
if([verb isEqualToString:@"POST"]){
contentType = @"application/x-www-form-urlencoded; charset=utf-8";
body = [params dataUsingEncoding:NSUTF8StringEncoding];
}else{
if(nil != parameters){
NSString *urlWithParams = [[url absoluteString] stringByAppendingFormat:@"?%@", params];
finalURL = [NSURL URLWithString:urlWithParams];
}
}
NSMutableDictionary *headers = [[[NSMutableDictionary alloc] init] autorelease];
[headers setValue:contentType forKey:@"Content-Type"];
[headers setValue:@"text/html" forKey:@"Accept"];
[headers setValue:@"no-cache" forKey:@"Cache-Control"];
[headers setValue:@"no-cache" forKey:@"Pragma"];
[headers setValue:@"close" forKey:@"Connection"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:finalURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[request setHTTPMethod:verb];
[request setAllHTTPHeaderFields:headers];
if(nil != parameters){
[request setHTTPBody:body];
}
[params release];
//
NSURLResponse *response;
NSError *error = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if(error){
NSLog(@"something is wrong: %@", [error description]);
}else{
if(responseData){
jsonStr = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
}
}
return jsonStr;
}
+(void)testRequest{
NSLog(@"test request...");
NSString *getUrl = @"http://192.168.222.1:8080/vgirl/isVgirl.php";
NSString *postUrl = @"http://192.168.222.1:8080/vgirl/isVgirlByPost.php";
NSMutableDictionary *dlist = [[NSMutableDictionary alloc] init];
[dlist setObject:@"pig" forKey:@"uid"];
[dlist setObject:@"access token" forKey:@"AccessToken"];
[dlist setObject:@"access token secret" forKey:@"AccessTokenSecret"];
NSString *jsonStrGet = [NetAPI sendRequestTo:[NSURL URLWithString:getUrl] usingVerb:@"GET" withParameters:dlist];
NSLog(@"do get: jsonStrGet = %@", jsonStrGet);
NSString *jsonStrPost = [NetAPI sendRequestTo:[NSURL URLWithString:postUrl] usingVerb:@"POST" withParameters:dlist];
NSLog(@"do post: jsonStrPost = %@", jsonStrPost);
[dlist release];
}
转载于:https://www.cnblogs.com/pengyingh/articles/2438726.html
iphone网络交互json实现相关推荐
- JSON在Android网络交互中的使用方法
在Android网络交互中使用到JSON传输接收数据. JSONObject为键值对形式的数据,内部使用LinkedHashMap实现.键的类型固定为String,值可取的类型在JSONObject, ...
- Android Volley 库通过网络获取 JSON 数据
本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 环境 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpC ...
- 玩转iPhone网络通讯之BSD Socket篇
玩转iPhone网络通讯之BSD Socket篇 编辑文档 在进行iPhone网络通讯程序的开发中,不可避免的要利用Socket套接字.iPhone提供了Socket网络编程的接口CFSocket,不 ...
- Android 网络交互之MD5为什么要加盐
MD5为什么要加盐 之前面试的时候,遇到一个面试的哥哥.不停的跟我确认我对网络传输过程中的password进行MD5加密的时候,是否加key了. 当时我很纳闷,因为MD5本身已经是不可逆的了,需要破解 ...
- python底层网络交互模块_网络和并发编程(面试题)
1,python的底层网络交互模块有哪些? 答案:socket, urllib,urllib3 , requests, grab, pycurl 2,简述OSI七层模型以及列举各层协议 应用层:HTT ...
- IOS之Swift5.x和OC网络请求JSON
IOS之Swift5.x和OC网络请求JSON // // ViewController.m // 基于OC网络解析JSON // // Created by 鲁军 on 2021/3/11. //# ...
- Android 自定义 ListView 显示网络上 JSON 格式歌曲列表
本文内容 环境 项目结构 演示自定义 ListView 显示网络上 JSON 歌曲列表 参考资料 本文最开始看的是一个国人翻译的文章,没有源代码可下载,根据文中提供的代码片段,自己新建的项目(比较可恶 ...
- 动态通过网络获取json来tabbar图片和文字或其他信息
动态通过网络获取json来tabbar图片和文字或其他信息 转载于:https://www.cnblogs.com/TheYouth/p/6488843.html
- 基带混用导致信号弱?iPhone网络差的原因及修复,望周知
基带混用导致信号弱?iPhone网络差的原因及修复,望周知 iPhone的手机信号问题,一直都是老生常谈的问题,但是并不是所有的iPhone的信号都是很差,有的时候就会发现两款相同iPhone手机,在 ...
最新文章
- GNN教程:图注意力网络(GAT)详解!
- 【C语言入门教程】2.7 表达式
- 【在还原SQL Server数据库时发生对于服务器“XXX”操作系统错误】很实用的解决方案...
- Windows下JDK开发环境搭建及环境变量配置
- 阿里最新分享Redis全套学习笔记PDF版,图文并茂,太详细了
- 原生js实现多语言切换
- Mstar的Monitor方案OSD 菜单制作(三)——添加字符串文字
- 游戏玩到这种程度,酱紫真的好吗?
- ENQUEUE_MIGRATED
- 打造APP引导页3D切换特效
- 抖音API分析,视频批量下载-初级
- python sci sci-hub 爬论文
- 使用Dash快速构建你的数据可视化前端
- Android效率组件篇 设置长按响应时间(时长)
- opencv android 透视,Opencv for Android 之透视变换
- 摩托罗拉v3的java游戏_重温经典!全新摩托罗拉V3采用折叠屏幕,街机王者归来!...
- 创建具体的产品,并继承产品抽象类
- Hash MSDN MD4 MD5 SHA1 CRC 详细解释
- 你的芯片,能抵挡住几次攻击?
- 什么是 Linux 下的 platform 设备驱动