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。
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
iphone客户端调用:
1、get的方式:
[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];
- }