IOS学习笔记,网络请求,json解析
2014-03-10 15:57
555 查看
创建一个同步的请求,需做如下步骤
1、创建一个NSString 类型的url字符 并把该url转化为NSURL类型
//设置请求的url
NSString *urlString= @"www.baidu.com";
NSURL* url = [NSURL URLWithString:urlString];
2、把URL对象赋值到NSURLRequest对象中,如为多个请求,需放入NSMutableURLRequest中。
3、创建一个NSURLConnection的实例,然后
4000
把自己定义好的对象赋值过去
NSMutableURLRequest* request= [NSMutableURLRequest new]; //url实例
[request setURL:url];
//设置连接的url
[request setTimeoutInterval:5];
//设置超时时间。如请求不能够正常获取,等待的时间。
//下面都是请求的一些json格式,具体按照服务器要求的json格式来操作
[request addValue:[url host] forHTTPHeaderField:@"HOST"];
[request addValue:@"text/xml; charset=utf-8"forHTTPHeaderField:@"Content-Type"];
[request addValue:postLength forHTTPHeaderField:@"Content-Length"];
[request addValue:soapUrl forHTTPHeaderField:@"SOAPAction"];
//请求的方式为同步请求
[request setHTTPMethod:@"POST"];
同步请求的获取方法
+ (NSDictionary*)postAndGetData:(NSString*)urlString :(NSMutableDictionary*)dic :(NSString*)soapUrl
{
//获取传送过来的json数据
NSString*JSONString = [dic
JSONRepresentation];
NSLog(@"JSONString===%@",JSONString);
//请求服务器所需的json格式
NSString *soapMessage = [NSString
stringWithFormat:
@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
"<soap:Body>\n"
"<service xmlns=\"http://www.thinkhome.com.cn/\">\n"
"<json>%@</json>\n"
"</service>\n"
"</soap:Body>\n"
"</soap:Envelope>\n", JSONString];
//设置请求的url
NSURL* url = [NSURL
URLWithString:urlString];
//设置请求数据
NSData*postData = [JSONString
dataUsingEncoding:NSUTF8StringEncoding];
NSString*postLength = [NSString
stringWithFormat:@"%d", [postData
length]];
//创建请求
NSMutableURLRequest* request= [NSMutableURLRequest
new];
[request setURL:url];
[request addValue:[url
host] forHTTPHeaderField:@"HOST"];
[request addValue:@"text/xml; charset=utf-8"forHTTPHeaderField:@"Content-Type"];
[request addValue:postLength
forHTTPHeaderField:@"Content-Length"];
[request addValue:soapUrl
forHTTPHeaderField:@"SOAPAction"];
[request setTimeoutInterval:5];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[soapMessage
dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response;
NSData* data= [NSURLConnection
sendSynchronousRequest:request returningResponse:&response
error:nil];
NSString* strRet= [[NSString
alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",strRet);
NSMutableDictionary *dict=[[NSMutableDictionary
alloc]init];
if([strRet isEqualToString:@""])
{
NSMutableDictionary *dict1=[[NSMutableDictionary
alloc]init];
[dict1 setValue:@"199"
forKey:@"status"];
[dict setValue:dict1
forKey:@"head"];
}
else
{
NSRange range1=[strRet
rangeOfString:@"{"];
NSString *str1=[strRet
substringFromIndex:range1.location];
NSRange range2=[str1
rangeOfString:@"serviceResult"];
NSString *str2=[str1
substringToIndex:range2.location];
str2=[str2 substringToIndex:str2.length-2];
dict=[str2 JSONValue];
}
return dict;
}
1、创建一个NSString 类型的url字符 并把该url转化为NSURL类型
//设置请求的url
NSString *urlString= @"www.baidu.com";
NSURL* url = [NSURL URLWithString:urlString];
2、把URL对象赋值到NSURLRequest对象中,如为多个请求,需放入NSMutableURLRequest中。
3、创建一个NSURLConnection的实例,然后
4000
把自己定义好的对象赋值过去
NSMutableURLRequest* request= [NSMutableURLRequest new]; //url实例
[request setURL:url];
//设置连接的url
[request setTimeoutInterval:5];
//设置超时时间。如请求不能够正常获取,等待的时间。
//下面都是请求的一些json格式,具体按照服务器要求的json格式来操作
[request addValue:[url host] forHTTPHeaderField:@"HOST"];
[request addValue:@"text/xml; charset=utf-8"forHTTPHeaderField:@"Content-Type"];
[request addValue:postLength forHTTPHeaderField:@"Content-Length"];
[request addValue:soapUrl forHTTPHeaderField:@"SOAPAction"];
//请求的方式为同步请求
[request setHTTPMethod:@"POST"];
同步请求的获取方法
+ (NSDictionary*)postAndGetData:(NSString*)urlString :(NSMutableDictionary*)dic :(NSString*)soapUrl
{
//获取传送过来的json数据
NSString*JSONString = [dic
JSONRepresentation];
NSLog(@"JSONString===%@",JSONString);
//请求服务器所需的json格式
NSString *soapMessage = [NSString
stringWithFormat:
@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
"<soap:Body>\n"
"<service xmlns=\"http://www.thinkhome.com.cn/\">\n"
"<json>%@</json>\n"
"</service>\n"
"</soap:Body>\n"
"</soap:Envelope>\n", JSONString];
//设置请求的url
NSURL* url = [NSURL
URLWithString:urlString];
//设置请求数据
NSData*postData = [JSONString
dataUsingEncoding:NSUTF8StringEncoding];
NSString*postLength = [NSString
stringWithFormat:@"%d", [postData
length]];
//创建请求
NSMutableURLRequest* request= [NSMutableURLRequest
new];
[request setURL:url];
[request addValue:[url
host] forHTTPHeaderField:@"HOST"];
[request addValue:@"text/xml; charset=utf-8"forHTTPHeaderField:@"Content-Type"];
[request addValue:postLength
forHTTPHeaderField:@"Content-Length"];
[request addValue:soapUrl
forHTTPHeaderField:@"SOAPAction"];
[request setTimeoutInterval:5];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[soapMessage
dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response;
NSData* data= [NSURLConnection
sendSynchronousRequest:request returningResponse:&response
error:nil];
NSString* strRet= [[NSString
alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",strRet);
NSMutableDictionary *dict=[[NSMutableDictionary
alloc]init];
if([strRet isEqualToString:@""])
{
NSMutableDictionary *dict1=[[NSMutableDictionary
alloc]init];
[dict1 setValue:@"199"
forKey:@"status"];
[dict setValue:dict1
forKey:@"head"];
}
else
{
NSRange range1=[strRet
rangeOfString:@"{"];
NSString *str1=[strRet
substringFromIndex:range1.location];
NSRange range2=[str1
rangeOfString:@"serviceResult"];
NSString *str2=[str1
substringToIndex:range2.location];
str2=[str2 substringToIndex:str2.length-2];
dict=[str2 JSONValue];
}
return dict;
}
相关文章推荐
- IOS学习笔记(16)网络请求,json解析
- iOS学习笔记-147.网络07——NSURLConnection04_简单JSON的解析
- iOS学习笔记网络篇之数据解析(JSON/XML)
- 网络请求与json数据解析——学习笔记
- swift 学习笔记1 -- json解析、网络请求、[myClass class]
- iOS 自己封装的网络请求,json解析的类
- iOS学习笔记(十一)——JSON数据解析
- ios网络学习------6 json格式数据的请求处理
- iOS学习笔记(十一)——JSON数据解析
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
- IOS SWIFT 网络请求JSON解析 基础一
- iOS 网络数据请求和Json 解析
- iOS网络请求数据的JSON解析的新旧方法对比
- iOS 自己封装的网络请求,json解析的类
- IOS学习笔记之XML于JSON解析
- iOS学习笔记(十一)——JSON数据解析 (转)
- iOS学习笔记---网络请求
- IOS学习 网络NSURLSession JSON文件解析、本地服务器启动、MAC混编
- JAVA学习笔记--线程请求Json数据,并解析绑定到listView
- IOS网络笔记--JSON解析