iphone 访问webservice

本文介绍如何在iOS应用中使用GET和POST方法调用ASP.NET WebService。具体步骤包括配置web.config文件以启用HTTP GET和POST,以及通过Objective-C代码实现客户端请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NSString *action = @"getAllSubwayStationsByLine";
int line = 1;
NSURL *url = [NSURL URLWithString: @"http://192.168.1.18:8080/MobileServer/MobileWebService?wsdl"];
NSString *body = [NSString stringWithFormat: @"
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:wsc=\"wsclient.fg114.com\">
<soapenv:Header/>
<soapenv:Body>
<wsc:getAllSubwayStationsByLine>
<line>%d</line>
</wsc:getAllSubwayStationsByLine>
</soapenv:Body>
</soapenv:Envelope>", line];
NSMutableRequest *req = [self requestWithURL: url];
[req setHTTPMethod: @"POST"];
[req setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding]];
[req addValue: [NSString stringWithFormat: @"\"%@\"", action] forHTTPHeaderField: @"SOAPAction"];
[req addValue: @"text/xml; charset=utf-8" forHTTPHeaderField: @"Content-Type"];
NSURLResponse *response = nil;
NSData *resultsData = [NSURLConnection sendSynchronousRequest: req returningResponse: &response error: &err];
相关网址:
wsdl2objc:http://code.google.com/p/wsdl2objc/
soapclient:http://code.google.com/p/mac-soapclient/

这篇博客写得也不错,可以参考

这篇文章,我将通过一个简单的例子来展现iPhone通过get和post方式请求asp.net webservice。

webservice

1、创建一个webservice

2、在webconfig中启用http get 和http post。

< webServices >
< protocols >
< add name ="HttpSoap" />
< add name ="HttpPost" />
< add name ="HttpGet" />
< add name ="Documentation" />
</ protocols >
</ webServices >
复制代码

iphone客户端调用:

1、get的方式:

NSString * queryString =
[NSString stringWithFormat:
@“http:
// 10.5.23.117:5111/Service1.asmx/HelloWorld?param=123%@“,
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];
}
复制代码

2、post的方式:

NSString *postString =@"123";
    NSURL *url = [NSURL URLWithString:
        @“http://10.5.23.117:5111/Service1.asmx/HelloWorld2”];
    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];
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值