`

iphone 对Web Services的三种请求方式soap get post

 
阅读更多

一:Using SO AP 1.1

 

 
POST /iptocountry.asmx HTTP/1.1
Host: www.ecubicle.net
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: “http://www.ecubicle.net/webservices/FindCountryAsXml”
<?xml version=”1.0” encoding=”utf-8”?>
<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/“>
<soap:Body>
<FindCountryAsXml xmlns=”http://www.ecubicle.net/webservices/“>
<V4IPAddress>string</V4IPAddress>
</FindCountryAsXml>
</soap:Body>
</soap:Envelope>

 

(1)请求的webservice url的地址为“http://www.ecubicle.net/iptocountry.asmx”

(2)url 的 SOAPAction 是 “http://www.ecubicle.net/webservices/FindCountryAsXml”

(3) 请求的Content-Type 格式为“text/xml; charset=utf-8.”

(4)请求的方式为post

(5)请求的内容(SOAP request)格式为

 
<?xml version=”1.0” encoding=”utf-8”?>
<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/“>
<soap:Body>
<FindCountryAsXml xmlns=”http://www.ecubicle.net/webservices/“>
<V4IPAddress>string</V4IPAddress>
</FindCountryAsXml>
</soap:Body>
</soap:Envelope>

 (6)请的内容长度(Content-Length)为SOAP request的字节长度

(7)返回的结果格式为

 
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version=”1.0” encoding=”utf-8”?>
<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/“>
<soap:Body>
<FindCountryAsXmlResponse xmlns=”http://www.ecubicle.net/webservices/“>
<FindCountryAsXmlResult>xml result</FindCountryAsXmlResult>
</FindCountryAsXmlResponse>
</soap:Body>
</soap:Envelope>

 

 - (IBAction)buttonClicked:(id)sender {

 

NSString *soapMsg =[NSString stringWithFormat:@“<?xml version=\“1.0\“ encoding=\“utf-8\“?>”
“<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/\“>”“<soap:Body>”
“<FindCountryAsXml xmlns=\“http://www.ecubicle.net/webservices/\“>”
“<V4IPAddress>%@</V4IPAddress>”“</FindCountryAsXml>”“</soap:Body>”“</soap:Envelope>”, ipAddress.text];


//---print it to the Debugger Console for verification---
NSLog(soapMsg);


NSURL *url = [NSURL URLWithString:@“http://www.ecubicle.net/iptocountry.asmx”];


NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];


//---set the various headers---
NSString *msgLength = [NSString stringWithFormat:@“%d”, [soapMsg length]];


[req addValue:@“text/xml; charset=utf-8” forHTTPHeaderField:@“Content-Type”];


[req addValue:@“http://www.ecubicle.net/webservices/FindCountryAsXml”forHTTPHeaderField:@“SOAPAction”];
[req addValue:msgLength forHTTPHeaderField:@“Content-Length”];


//---set the HTTP method and body---
[req setHTTPMethod:@“POST”];


[req setHTTPBody:[soapMsg dataUsingEncoding:NSUTF8StringEncoding]];


[activityIndicator startAnimating];
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
if (conn) {
webData = [[NSMutableData data] retain];
}
}

 

 

二:Using SO AP 1.2

 

请求格式

 
POST /iptocountry.asmx HTTP/1.1
Host: www.ecubicle.net
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version=”1.0” encoding=”utf-8”?>
<soap12:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
xmlns:soap12=”http://www.w3.org/2003/05/soap-envelope”>
<soap12:Body>
<FindCountryAsXml xmlns=”http://www.ecubicle.net/webservices/“>
<V4IPAddress>string</V4IPAddress>
</FindCountryAsXml>
</soap12:Body>
</soap12:Envelope>

 

返回结果格式

 
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version=”1.0” encoding=”utf-8”?>
<soap12:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
xmlns:soap12=”http://www.w3.org/2003/05/soap-envelope”>
<soap12:Body>
<FindCountryAsXmlResponse xmlns=”http://www.ecubicle.net/webservices/“>
<FindCountryAsXmlResult>xml result</FindCountryAsXmlResult>
</FindCountryAsXmlResponse>
</soap12:Body>
</soap12:Envelope>

 

 

请求代码同SOAP 1.1

 

三:Using HTTP GET

 

请求格式

GET /iptocountry.asmx/FindCountryAsXml?V4IPAddress=string HTTP/1.1
Host: www.ecubicle.net
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

 

 (1)请求的地址为http://www.ecubicle.net/iptocountry.asmx/FindCountryAsXml?V4IPAddress=“aa”.

          发送的数据格式必须为键值对如key1=value1&key2=value2&key3=value3.

(2) 请求的Content-Type 格式为“text/xml; charset=utf-8.”

(3)请求的内容长度(Content-Length)为 0

(4)请求的方式为GET.

(5)返回结果发送为

<?xml version=”1.0”?>
xml result

 

请求发送

 - (IBAction)buttonClicked:(id)sender {
NSString *queryString =[NSString stringWithFormat:@“http://www.ecubicle.net/iptocountry.asmx/FindCountryAsXml?V4IPAddress=%@“,ipAddress.text];
NSURL *url = [NSURL URLWithString:queryString];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
[req addValue:@“text/xml; charset=utf-8” forHTTPHeaderField:@“Content-Type”];
[req addValue:0 forHTTPHeaderField:@“Content-Length”];
[req setHTTPMethod:@“GET”];

[activityIndicator startAnimating];
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
if (conn) {
webData = [[NSMutableData data] retain];
}
}
 
 

四: Using HTTP POS T

 

请求格式
POST /iptocountry.asmx/FindCountryAsXml HTTP/1.1
Host: www.ecubicle.net
Content-Type: application/x-www-form-urlencoded
Content-Length: length
V4IPAddress=string

 (1)请求地址为http://www.ecubicle.net/iptocountry.asmx/FindCountryAsXml

 (2)Content-Type为“application/x-www-form-urlencoded”

 (3)Content-Length 为V4IPAddress=string的长度。

     The data to be sent is formatted as key/value pairs — key1=value1&key2=value2&key3=value3. Unlike
     HTTP GET, the data are not sent through the query string; it is sent after the HTTP headers.

(4)The HTTP Method is POST.

(5)返回结果格式为

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version=”1.0”?>
xml result

 

请求发送

 

- (IBAction)buttonClicked:(id)sender {
NSString *postString =[NSString stringWithFormat:@“V4IPAddress=%@“, ipAddress.text];

NSLog(postString);

NSURL *url = [NSURL URLWithString:@“http://www.ecubicle.net/iptocountry.asmx/FindCountryAsXml”];

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];

NSString *msgLength = [NSString stringWithFormat:@“%d”, [postString length]];

[req addValue:@“application/x-www-form-urlencoded”forHTTPHeaderField:@“Content-Type”];

[req addValue:msgLength forHTTPHeaderField:@“Content-Length”];

[req setHTTPMethod:@“POST”];

[req setHTTPBody: [postString dataUsingEncoding:NSUTF8StringEncoding]];

[activityIndicator startAnimating];
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
if (conn) {
webData = [[NSMutableData data] retain];
}
}

 

分享到:
评论
3 楼 xiaozhao-521 2012-10-11  
rongxianyu 写道
webData = [[NSMutableData data] retain];这里是把请求的返回结果保存到webdata吗?

不是,这里只是创建一个NSMutableData实例,在这里该实例的内容为空
2 楼 rongxianyu 2012-09-15  
webData = [[NSMutableData data] retain];这里是把请求的返回结果保存到webdata吗?
1 楼 rongxianyu 2012-09-15  
[activityIndicator startAnimating];中的activityIndicator是什么啊?怎么没有看到前面定义?

相关推荐

    iOS之同步请求、异步请求、GET请求、POST请求

    在iOS开发中,网络请求是应用与服务器交互的重要方式,主要分为同步请求和异步请求,同时HTTP协议提供了两种常见的请求方法:GET和POST。理解这些概念及其在iOS中的实现对于构建用户友好的应用程序至关重要。 1. **...

    SOAP_Client 一款iphone webService得工具挺好用

    SOAP客户端是一款专为iPhone设计的Web服务工具,它使得在iOS平台上与SOAP(Simple Object Access Protocol)服务进行交互变得简单而高效。SOAP是一种基于XML的协议,广泛用于构建分布式系统,尤其是在企业级应用中,...

    全面解析iOS中同步请求、异步请求、GET请求、POST请求

    在iOS开发中,网络请求是应用与服务器交互的基础,主要包括同步请求、异步请求以及HTTP协议中的两种主要请求方法:GET和POST。接下来,我们将详细探讨这些概念。 1. **同步请求**: - 同步请求是阻塞式的,当发送...

    iphone访问java 后台webservice

    开发者需要构造合适的URL,携带必要的参数,以GET或POST方式提交到服务器。 2. **WebService类型**:在描述中提到了XML和JSON,这表明服务可能是基于SOAP的(因为SOAP通常使用XML作为消息格式),也可能有RESTful...

    Hello_SOAP-getOffesetUTCTime

    标题“Hello_SOAP-getOffesetUTCTime”暗示了一个示例项目,它涉及使用SOAP(Simple Object Access Protocol)在iPhone平台上与Web服务进行交互,尤其是获取UTC偏移时间的功能。SOAP是一种基于XML的协议,用于在Web...

    【Dealing with Data, User Defaults, SQLite, Web Services】[PDF] [iPhone/iPad/iOS]

    标题与描述中提到的知识点主要围绕在iOS应用开发中如何处理数据、用户默认设置(User Defaults)、SQLite数据库以及网络服务(Web Services)。以下是对这些关键概念的深入解析: ### 处理iOS应用中的数据 在iOS应用...

    卡永久iphone在线源码(POST)

    【标题】"卡永久iphone在线源码(POST)"指的是一个用于实现iPhone设备激活或解锁的在线源代码,其中可能包含处理POST请求的功能。在IT领域,源码是程序员用编程语言编写的原始代码,它是软件的基础,可以被编译成可...

    xml.zip_iphone访问webservice视频_xml_数据解析

    - GET请求用于获取Web服务中的数据,而POST请求可以提交数据到服务器。 - 需要处理网络请求的状态,如成功、失败、超时等。 3. **SOAP与RESTful Web服务**: - SOAP(Simple Object Access Protocol)是一种基于...

    iOS通过Soap请求WSDL的例子

    本教程将详细介绍如何在Objective-C中使用SOAP请求与WSDL服务进行交互,特别适用于iPhone应用开发。 首先,我们需要准备一个WSDL2OBJC工具,这是一个开源项目,它能够根据WSDL文件自动生成Objective-C客户端代码。...

    Beginning iPhone and iPad Web Apps

    总之,《初识iPhone与iPad Web应用开发》是一本全面的教程,适合对Web开发有一定基础,希望通过iOS平台扩展影响力的开发者。通过学习,你将能够创建出既美观又实用的Web应用,充分利用iPhone和iPad的潜力,为用户...

    Iphone快捷方式管理器源码

    在iOS系统中,快捷方式(Shortcuts)是一种方便用户快速执行特定任务的工具,通过创建自定义的Siri快捷方式或者在主屏幕上添加快捷图标,用户可以一键触发一系列操作。本资源提供的是"Iphone快捷方式管理器"的C#源码...

    iPhone连接Webservice

    Web Service是一种基于网络的、中间件独立的应用程序接口,它通过标准协议(如SOAP、REST)来交换数据。在iPhone应用中,我们通常使用HTTP或HTTPS协议来与Web Service进行通信。 1. **选择合适的通信方式**: - ...

    iphone HTTP

    总结来说,这个`iPhone HTTP`工具类提供了一种简单的方式来处理HTTP请求,包括同步和异步的GET和POST操作,以及处理服务器响应。通过自定义的协议和方法,开发者可以轻松地集成到自己的应用程序中,进行网络数据的...

    时间控件 iphone 基于web

    在iOS设备上构建基于Web的时间控件是一种常见需求,特别是在开发跨平台的移动应用时。时间控件(通常称为DatePicker)允许用户方便地选择日期或时间,为网站和应用程序提供了直观的用户界面。本篇文章将深入探讨如何...

    iPhone的web开发框架 UiUIKit

    4. **交互一致性**:遵循Apple的Human Interface Guidelines(人机交互指南),确保Web应用的交互方式与原生应用一致,提高用户熟悉度和满意度。 最后,UiUIKit的灵活性和易用性使其成为开发者和设计师的理想选择,...

    iphone web开发 iui插件

    在移动设备领域,尤其是苹果的iPhone,Web开发已经成为构建交互性强、用户体验良好的应用程序的重要途径。iUI是一款专门针对iPhone和类似设备的Web应用程序设计的开源框架,它允许开发者使用HTML、CSS和JavaScript来...

    Soap请求查询手机号归属地(iPhone源代码)

    本文将详细讲解如何使用SOAP(Simple Object Access Protocol)请求来查询手机号码的归属地,主要针对iPhone平台,并提供源代码示例。 SOAP是一种基于XML的协议,用于在Web服务中交换结构化和类型化的信息。它允许...

Global site tag (gtag.js) - Google Analytics