`
弄月吟风
  • 浏览: 199500 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

iPhoneHttp通信

阅读更多

1、准备阶段

 

NSString *urlString = [NSString stringWithFormat:@"http://jssb.zust.edu.cn/androidLogin.action"];

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];

    [request setURL:[NSURL URLWithString:urlString]];

   [request setHTTPMethod:@"POST"];

 

2、设置头

    NSString *contentType = [NSString stringWithFormat:@"text/xml"];

    [request addValue: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 = [NSMutableData data];

    [postBody appendData:[[NSString stringWithFormat:@"<Request  Action=\"Login\">"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"<Body>"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"<Username>wangjun</Username>"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"<Password>password</Password>"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"<PlatformID>2</PlatformID>"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"<PlatformVersion>3.1.3</PlatformVersion>"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"<TaskViewerName>IP 1.3</TaskViewerName>"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"<TaskViewerVersion>3</TaskViewerVersion>"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"</Body>"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"</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-->

分享到:
评论
1 楼 zxsz4085 2012-08-12  
你好,最近我在弄一个应用请求php接口,接口那边偶尔会出现一个参数都接收不到的情况。请问楼主碰到过这样的情况吗?这个会不会跟封装发送http请求的方法有问题。

相关推荐

    OSX服务端+iphone客户端 网络通信小程序

    在本文中,我们将深入探讨如何在OSX服务端与iPhone客户端之间实现网络通信,主要关注CFNETWORK和NSStream这两个关键的iOS及Mac OS X网络编程框架。这些技术使得应用程序能够处理HTTP、FTP、TCP/IP和其他网络协议,...

    iphone HTTP

    在iOS开发中,HTTP协议是应用层网络通信的重要方式,用于客户端(如iPhone应用程序)与服务器之间传输数据。本文将详细解析给定的文件中关于`iPhone HTTP`工具类的实现,包括同步GET、POST以及异步GET和POST请求。 ...

    android/iphone/windows/linux/微信 声波通信-声波wifi配码库(2021)

    详情了解:http://blog.csdn.net/softlgh/article/details/40507623 没有积分的也可从https://pan.baidu.com/s/1co0TaQ5KAFFc-MBdrIA6MA下载 后面还会上传最近两年做过的一些声音信号处理项目:声波智能锁,baby ...

    android/iphone/windows/linux/微信 声波通信-声波wifi配码库(2020)

    性能非常强,没有运行不了的平台,而且通过内存池优化,长时间解码不再分配新内存,可7*24小时运行 可支持任何平台,常见的平台android , iphone, windows, linux, arm, mipsel, stm32都有示例。 详情了解:...

    凤凰书城通信协议文档

    1. **通信方式**:文档中提到的通信方式可能包括HTTP协议,这是互联网上应用最广泛的一种网络通信协议,用于客户端(如移动应用)向服务器发送请求并接收响应。通常,HTTP协议被用于传输JSON或XML等数据格式,这在...

    android/iphone/windows/linux声波通信库(2018)

    可支持任何平台,常见的平台android, iphone, windows, linux, arm, mipsel, stm32都有示例。 详情了解:http://blog.csdn.net/softlgh/article/details/40507623 也可从http://pan.baidu.com/s/1mi00vhe下载 后面还...

    android/iphone/windows/linux声波通信库(2017)

    iphone, windows, linux, arm, mipsel, stm32都有示例。 详情了解:http://blog.csdn.net/softlgh/article/details/40507623 也可从http://pan.baidu.com/s/1mi00vhe下载 后面还会上传最近两年做过的一些声音信号...

    android/iphone/windows/linux声波通信库(2019)

    可支持任何平台,常见的平台android, iphone, windows, linux, arm, mipsel, stm32都有示例。 详情了解:http://blog.csdn.net/softlgh/article/details/40507623 没有积分的也可从...

    iPhone Http下载

    在iOS应用开发中,HTTP下载是一项常见的任务,特别是在构建移动应用程序时,比如iPhone应用。HTTP(超文本传输协议)是一种用于传输数据的网络协议,广泛应用于网页浏览和数据下载。本教程将深入探讨如何在iPhone...

    android/iphone/windows/linux声波通信-声波wifi配码库(2020)

    20米以上,通过设备传输距离可在50米以上 性能非常强,没有运行不了的平台,而且通过内存池优化,长时间解码不再分配新内存,可7*24小时运行 可支持任何平台,常见的平台android , iphone, windows, linux, arm, ...

    android/iphone/windows/linux/微信 声波通信-声波wifi配码库(2023)

    详情了解:http://blog.csdn.net/softlgh/article/details/40507623 没有积分的也可从https://pan.baidu.com/s/1co0TaQ5KAFFc-MBdrIA6MA下载 后面还会上传最近两年做过的一些声音信号处理项目:声波智能锁,baby ...

    android/iphone/windows/linux/微信 声波通信-声波wifi配码库(2022)

    详情了解:http://blog.csdn.net/softlgh/article/details/40507623 没有积分的也可从https://pan.baidu.com/s/1co0TaQ5KAFFc-MBdrIA6MA下载 后面还会上传最近两年做过的一些声音信号处理项目:声波智能锁,baby ...

    iphone 聊天应用程序

    首先,我们要明确的是,iPhone聊天应用程序的核心在于实时通信。为了实现这一目标,我们需要选择一种适合的通信协议。在iOS开发中,最常用的实时通信协议是WebSocket,它提供了全双工、低延迟的连接,能够实现服务器...

    Iphone编程

    《iPhone应用程序编程指南》作为指导书籍,提供了构建iPhone应用程序所需的知识,包括但不限于用户界面设计、应用生命周期管理、数据存储、网络通信等方面的内容。 在进行iPhone编程时,首先需要熟悉iOS操作系统...

    iphoneQQ挂号器

    这通常涉及到网络通信协议,如HTTP、TCP/IP或者WebSocket,以及数据同步机制。 3. **文件结构**: - `iPhoneQQ.exe`:这是Windows操作系统下的可执行文件,可能是iPhoneQQ挂号器的主要程序,用于启动和运行整个...

    iphone 网络编程类 Http协议(更新版)

    在iPhone应用中,我们可以使用苹果提供的Foundation框架中的`NSURLSession`类来实现HTTP通信。`NSURLSession`是iOS 7及更高版本中推荐的网络编程接口,它可以处理HTTP、HTTPS以及FTP等协议。相比于旧版的`...

    iphone访问java 后台webservice

    1. **iPhone客户端与Java后台通信**:iPhone应用可以通过HTTP或HTTPS协议发起请求到Java服务器。Objective-C或Swift是iPhone应用的主要编程语言,它们都提供了URLSession类来发送网络请求。开发者需要构造合适的URL...

    串口wifi 即插即用,不需要编程,能直接跟iphone通信

    TCP/UDP/ICMP/DHCP/DNS/HTTP 支持自动和命令两种工作模式 支持串口透明传输模式 支持 AT+控制指令集 支持多种参数配置方式: 串口/WEB 服务器/无线连接 全面支持串口透明数据传输模式,真 正实现串口的即插即用 ...

    卡iPhone在线源码

    1. **网络通信协议**:源码中会包含客户端(如iOS应用)与服务器之间的通信协议,可能是HTTP/HTTPS,或者是自定义的TCP/IP协议,用于传输解锁请求和响应。 2. **身份验证机制**:为了防止非法用户滥用服务,源码...

    iphone实现聊天功

    在iOS平台上实现聊天功能,通常会涉及到多个技术领域,...通过以上技术的整合和优化,可以构建出一个功能完善的iPhone聊天应用。在实际开发中,还需要关注用户体验、性能测试和错误处理,确保应用的稳定性和易用性。

Global site tag (gtag.js) - Google Analytics