当前位置: 代码迷 >> Iphone >> iPhoneHttp通讯
  详细解决方案

iPhoneHttp通讯

热度:76   发布时间:2016-04-25 06:41:02.0
iPhoneHttp通信

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-->

  相关解决方案