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 ...
随机推荐
- hdoj 1977 Consecutive sum II
Consecutive sum II Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- [五]JFreeChart实践四之直线图
重点: 1.时间序列集合作为dataset,一个时间序列为一条折线 2.时间序列可以是月:年,小时:天 3.准备好时间序列要放入时间序列集合中 4.将时间序列集合作为dataset传入ChartFac ...
- SQL Server 2008 游标使用实例
本文使用以下两张数据库表作为演示对象. 1 游标初探--使用游标进行遍历 declare @classAndStudent table( class_id int, --班级ID class_name ...
- Yum出错Error: Cannot find a valid baseurl for repo: base(转)
centos yum 错误 Error: Cannot find a valid baseurl for repo: base 装了个CentOS 6.x,使用yum时出现了下面的错误提示.Loade ...
- [Whole Web, Node.js PM2] Loggin with PM2
Add config for app's log and error log for PM2. { "apps": [{ "name": "App1& ...
- [Javascript] Lodash: Refactoring Simple For Loops (_.find, _.findLast, _.filter)
This lesson shows how to refactor your old loops into using a simpler and more powerful lodash-style ...
- FastJSON应用前测试--转载
FastJSON 应用前测试 FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能. ...
- 宽字节SQL注入
1.联想lelink站 例1, 联想lelink站user参数存在宽字节SQL注入 提交,user=wctest%df’ and 1=2%23 结果,出现了”運”字,如图:
- Java编程最差代码
字符串连接误用 错误的写法: String s = ""; for (Person p : persons) { s += ", " + p.getName( ...
- JNI 学习笔记系列(一)
JNI全称是Java native interface,它是一个中间件,通过JNI可以使Java和C语言之间互相调用,在android开发中,像wifi热点的开启,像极品飞车中重力加速,碰撞效果的模拟 ...