IOS 学习笔记 2015-03-24 OC-API-网络访问-案例一
//
// WPSuggest.h
// OC-API-网络访问
//
// Created by wangtouwang on 15/3/24.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import <Foundation/Foundation.h> #pragma mark -类 反馈信息
@interface WPSuggest : NSObject #pragma mark -属性
@property(nonatomic,copy) NSString *_system;
@property(nonatomic,copy) NSString *_version;
@property(nonatomic,copy) NSString *_productType;
@property(nonatomic,copy) NSString *_suggest;
@property(nonatomic,copy) NSString *_concat; -(id)initWithObject:(NSString *)system :(NSString *) version :(NSString *)productType :(NSString *) suggest :(NSString *) concat; @end //
// WPSuggest.m
// OC-API-网络访问
//
// Created by wangtouwang on 15/3/24.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import "WPSuggest.h" @implementation WPSuggest -(id)initWithObject:(NSString *)system :(NSString *)version :(NSString *)productType :(NSString *)suggest :(NSString *)concat{
if (self = [super init]) {
self._system=system;
self._version=version;
self._productType=productType;
self._suggest=suggest;
self._concat=concat;
}
return self;
} @end //
// WPSuggestResponse.h
// OC-API-网络访问
//
// Created by wangtouwang on 15/3/24.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import <Foundation/Foundation.h> #pragma mark -h 反馈信息 返回结果
@interface WPSuggestResponse : NSObject #pragma mark -h 属性
@property(nonatomic,copy) NSString *status;
@property(nonatomic,copy) NSString *errorMessage;
@end //
// WPSuggestResponse.m
// OC-API-网络访问
//
// Created by wangtouwang on 15/3/24.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import "WPSuggestResponse.h" @implementation WPSuggestResponse @end //
// WPUserContentDelegate.h
// OC-API-网络访问
//
// Created by wangtouwang on 15/3/24.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import <Foundation/Foundation.h>
@class WPSuggest;
@class WPSuggestResponse; #pragma mark -h 用户后天设置协议 其实就是java中的抽象类 提供的抽像方法
@protocol WPUserConsoleDelegate <NSObject> #pragma mark -h 提交用户反馈信息,获取反馈结果
@required
-(WPSuggestResponse *) getWpSuggestResponse:(WPSuggest *)wpsuggest; @end //
// WPUserConsoleService.h
// OC-API-网络访问
//
// Created by wangtouwang on 15/3/24.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import <Foundation/Foundation.h>
#import "WPUserConsoleDelegate.h" @interface WPUserConsoleService : NSObject<WPUserConsoleDelegate> @end //
// WPUserConsoleService.m
// OC-API-网络访问
//
// Created by wangtouwang on 15/3/24.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import "WPUserConsoleService.h"
#import "WPSuggest.h"
#import "WPSuggestResponse.h" @implementation WPUserConsoleService #pragma mark -h 创建反馈信息的Request对象
-(NSURLRequest *) getSuggestRequest:(NSString *)urlStr :(WPSuggest *)wpsuggest{
NSMutableURLRequest *requestMM = nil;
// 链接地址
NSString *str =urlStr;
//UTF编码
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//创建URL链接
NSURL *url = [NSURL URLWithString:str]; /*创建可变请求*/
requestMM = [[NSMutableURLRequest alloc] initWithURL:url cachePolicy:() timeoutInterval:5.0f];
//设置为Post请求
[requestMM setHTTPMethod:@"POST"];
//创建Post参数
NSString *postParamStrs = [NSString stringWithFormat:@"system=%@&version=%@&productType=%@&suggest=%@&contact=%@",wpsuggest._system,wpsuggest._version,wpsuggest._productType,wpsuggest._suggest,wpsuggest._concat];
//创建参数对象
NSData *bodyData=[postParamStrs dataUsingEncoding:NSUTF8StringEncoding];
//设置请求参数
[requestMM setHTTPBody:bodyData];
return requestMM;
} #pragma mark -h 解析反馈链接返回的JSON数据 -(WPSuggestResponse *) getWpSuggestResponse:(WPSuggest *)wpsuggest{
WPSuggestResponse *response = nil;
// 链接地址
NSString *str = @"http://192.168.1.126:18080/wapp//app/addSuggest.htm";
NSMutableURLRequest *requestMM = (NSMutableURLRequest *)[self getSuggestRequest:str :wpsuggest]; NSData *data =[NSURLConnection sendSynchronousRequest:requestMM returningResponse:nil error:nil];
NSError *error=nil;
//将对象序列化为字典
NSDictionary *dic= [NSJSONSerialization JSONObjectWithData:data options: error:&error];
NSString *status = (NSString *)dic[@"status"];
NSString *errorMessage =[status isEqualToString:@""]?@"":(NSString *)dic[@"errorMessage"]; response = [[WPSuggestResponse alloc] init];
response.status=status;
response.errorMessage=errorMessage; //将对象转换为字符串
//NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return response;
} @end // main.m
// OC-API-网络访问
//
// Created by wangtouwang on 15/3/24.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "WPUserConsoleService.h"
#import "WPSuggest.h" int main(int argc, const char * argv[]) {
@autoreleasepool {
WPUserConsoleService *wpUserConsoleService = [[WPUserConsoleService alloc] init];
WPSuggest *wpsuggest = [[WPSuggest alloc] initWithObject:@"IOS" :@"8.0" :@"iphone 5S" :@"TEST IOS 中文传送12" :@"1312323@qq.com"];
[wpUserConsoleService getWpSuggestResponse:wpsuggest];
}
return ;
}

IOS 学习笔记 2015-03-24 OC-API-网络访问-案例一的更多相关文章
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
- iOS学习笔记总结整理
来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...
- iOS学习笔记17-FMDB
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- iOS学习笔记17-FMDB你好!
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- iOS学习笔记10-UIView动画
上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...
- iOS学习笔记之ARC内存管理
iOS学习笔记之ARC内存管理 写在前面 ARC(Automatic Reference Counting),自动引用计数,是iOS中采用的一种内存管理方式. 指针变量与对象所有权 指针变量暗含了对其 ...
- iOS学习笔记之UITableViewController&UITableView
iOS学习笔记之UITableViewController&UITableView 写在前面 上个月末到现在一直都在忙实验室的事情,与导师讨论之后,发现目前在实验室完成的工作还不足以写成毕业论 ...
- IOS学习笔记48--一些常见的IOS知识点+面试题
IOS学习笔记48--一些常见的IOS知识点+面试题 1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...
- iOS学习笔记-自定义过渡动画
代码地址如下:http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swif ...
随机推荐
- 创建二叉树,C语言实现
一.前序遍历创建二叉树,使用递归,头文件 BiTree.h /*槽点一:创建树时用scanf输入不成功*/ #ifndef BITREE_H #define BITREE_H #include< ...
- 问题-"Record not found or changed by another user"
回答1:===============================================================问题:clientdataset“Record not found ...
- 问题-Delphi编译时提示缺少delphi自己的单元文件
问题现象:在编译工程是,提示缺少DELPHI自己的很多单元. 问题原因:这可能是因为手动误删除,或是第三方控件安装时误删除DELPHI自己的目录引起的(如果说错了,希望高人指点). 问题处理: 方法一 ...
- 如何查看tomcat是32位还是64位
原文地址:http://www.cnblogs.com/andysd/p/3940976.html
- redis整合spring @Bean写法
jedis是一款java连接redis的客户端,spring基于jedis进行了封装,提供了简洁的操作redis的方法. 使用maven进行管理jar包之间的依赖: <dependency> ...
- SQL 左外连接,右外连接,全连接,内连接
原文地址 连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行. 连接可 ...
- C# WPF 解压缩7zip文件 带进度条 sevenzipsharp
vs2013附件 :http://download.csdn.net/detail/u012663700/7427461 C# WPF 解压缩7zip文件 带进度条 sevenzipsharp W ...
- ios7自带的晃动效果
ios7自带的晃动效果 by 伍雪颖 - (void)registerEffectForView:(UIView *)aView depth:(CGFloat)depth; { UIInterpola ...
- Drawable、Bitmap、byte[]之间的转换
android在处理一写图片资源的时候,会进行一些类型的转换: 1 Drawable → Bitmap 的简单方法 ((BitmapDrawable)res.getDrawable(R.drawabl ...
- tr 命令 操作字符串中字符 删除替换 等
ip=$(cat ${path}initOauth/initinfo.txt |awk '{if(NR==1)print $0;}'|tr -d '\r'); tr命令可以对来自标准输入的字符进行替换 ...