1、准备阶段
?
NSString *urlString = [NSString stringWithFormat:@"http://jssb.zust.edu.cn/androidLogin.action"];
??? NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
??? [requestsetURL:[NSURL URLWithString:urlString]];
?? [request setHTTPMethod:@"POST"];
?
2、设置头
??? NSString *contentType = [NSString stringWithFormat:@"text/xml"];
??? [requestaddValue:contentType forHTTPHeaderField: @"Content-Type"];
?
?
3、数据内容体的设定
NSMutableData *postBody = [NSMutableData data];
[postBody appendData:[[NSString stringWithFormat:@"id=%@&password=%@&role=%@",@"admin02",@"admin02",@"dean"] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postBody];
?
XML传送的时候:
NSMutableData *postBody = [NSMutableDatadata];
???[postBody appendData:[[NSString stringWithFormat:@"<Request? Action=\"Login\">"]dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSStringstringWithFormat:@"<Body>"]dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSString stringWithFormat:@"<Username>wangjun</Username>"]dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSStringstringWithFormat:@"<Password>password</Password>"]dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSString stringWithFormat:@"<PlatformID>2</PlatformID>"]dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSStringstringWithFormat:@"<PlatformVersion>3.1.3</PlatformVersion>"]dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSString stringWithFormat:@"<TaskViewerName>IP1.3</TaskViewerName>"] dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSStringstringWithFormat:@"<TaskViewerVersion>3</TaskViewerVersion>"]dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSStringstringWithFormat:@"</Body>"]dataUsingEncoding:NSUTF8StringEncoding]];
???[postBody appendData:[[NSStringstringWithFormat:@"</Request>"]dataUsingEncoding:NSUTF8StringEncoding]];
???//post
???[request setHTTPBody:postBody];
?
4、请求响应
??? NSHTTPURLResponse* urlResponse = nil;
??? NSError *error = [[NSError alloc] init];
??? NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
?? NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
自己封装http请求工具类,用与淘宝:
.h文件
?
//// HttpUtil.h// TaoBaoTest//// Created by 杭 鲍 on 12-5-7.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.////http请求工具类,用来进行httpget以及httppost请求,返回值是一个String类型#import <Foundation/Foundation.h>@interface HttpUtil : NSObject { }-(NSString *)httpGet:(NSString *)httpUrl;//传入需要请求的url-(NSString *)httpPost:(NSString *)httpUrl:(NSString *)postData;//传入需要请求的url以及需要post的参数值@end
?.m文件
?
#import "HttpUtil.h"@implementation HttpUtil-(NSString *)httpGet:(NSString *)httpUrl{ NSMutableURLRequest *request =[[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:httpUrl]]; [request setHTTPMethod:@"GET"]; // NSString *contentType = [NSString stringWithFormat:@"text/xml"]; NSString *contentType = [NSString stringWithFormat:@"application/x-www-form-urlencoded"]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; NSHTTPURLResponse* urlResponse = nil; NSError *error = [[NSError alloc] init]; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; return result;}-(NSString *)httpPost:(NSString *)httpUrl:(NSString *)postData{ NSMutableURLRequest *request =[[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:httpUrl]]; [request setHTTPMethod:@"POST"]; NSString *contentType = [NSString stringWithFormat:@"application/x-www-form-urlencoded"]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; NSMutableData *postBody = [NSMutableData data]; [postBody appendData:[[NSString stringWithFormat:postData] dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPBody:postBody]; NSHTTPURLResponse* urlResponse = nil; NSError *error = [[NSError alloc] init]; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; return result;}@end
?<!--EndFragment-->