IOS 对 .Net WebService 的调用 和上传文件
来源:互联网 发布:说唱编辑软件 编辑:程序博客网 时间:2024/06/08 13:42
原理 根据 WebService 提供的 请求示例进行编写!
不多说 直接放代码 下面是关键的代码:
#define my_web_address @"http://192.168.1.133/"
#define my_web_service @"CatWebService/CatUserService.asmx"
#define my_web_namespace @"http://www.xxxx.com/"
//返回Soap Body
+(NSString *)getSoapBody:(NSString *)funcationName parameter:(NSString *)content
{
if(content == nil)
{
content = @"";
}
return [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>"
"<%@ xmlns=\"%@\">"
"%@"
"</%@>"
"</soap:Body></soap:Envelope>",funcationName,my_web_namespace,content,funcationName];
}
//返回SoapBody URL Request 信息
+(NSMutableURLRequest *)getRequest:(NSString *)funcationName parameter:(NSString *)pars
{
NSString* message = [self getSoapBody:funcationName parameter:pars];
NSString* mesLenth = [NSString stringWithFormat:@"%d",message.length];
NSString* funurl = [NSString stringWithFormat:@"%@%@",my_web_namespace,funcationName];
NSURL* url = [NSURL URLWithString:[self getWSDLURL]];
// NSLog(@"url is :%@",url);
// NSLog(@"SOAPAction is %@: ",funurl);
// NSLog(@"SoapBoay:%@",message);
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
[request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request addValue:funurl forHTTPHeaderField:@"SOAPAction"];
[request addValue:mesLenth forHTTPHeaderField:@"Content-Length"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[message dataUsingEncoding:NSUTF8StringEncoding]];
return request;
}
其实 有了上面的两个方法 差不多
用NSURLConnection 就可以访问 WebService 了
NSMutableURLRequest* request = [WebServiceHelper getRequest:funNameparameter:funpars];
[NSURLConnectionconnectionWithRequest:requestdelegate:self];
我自己写了个 类 只不多是对 NSUrlConnection 和 对结果查询 进行了 封装 下载地址: http://download.csdn.net/detail/li6185377/4345010
里面 还附带了 对文件的上传 是别人写的 我就 合并了
因为 返回的数据 是Soap 数据 所以 我用GDataXml 对数据进行解析
如果 你们要直接用我的文件的化 记得加上GDATAXML
使用例子 :
WebServiceHelper* service = [[[WebServiceHelper alloc]initWebService:@"login"] autorelease];
[service addParameterForString:@"username" value:txt_username.text];
[service addParameterForString:@"password" value:txt_password.text];
service.delegate = self;
[service startASynchronous];
要记得 加上回调函数
-(void)requestFinished:(WebServiceHelper *)request
{
NSString* result = [request getSimpleResult];
NSArray *array = [result componentsSeparatedByString:@"{h}"];
NSString* code = [array objectAtIndex:0];
if(code.intValue == 1)
{
NSString* userinfo = [array objectAtIndex:1];
UserModel* model = [[UserModel alloc]initWithXmlData:userinfo];
[AppManager sharedManager].currentUserModel = model;
[model release];
[WToast showWithText:@"登陆成功!"];
[LoginController hideLoginController];
}
else if(code.intValue == -1)
{
[WToast showWithText:@"请核对账号密码后登陆。"];
}
else {
[WToast showWithText:@"系统繁忙!请稍后登陆。"];
}
}
-(void)requestFailed:(WebServiceHelper *)request
{
[WToast showWithText:@"系统繁忙!请稍后登陆。"];
NSLog(@"%@",request.error.debugDescription);
}
这是对应上传的 WebService 的方法
[WebMethod]
public string upload()
{
try
{
HttpFileCollection httpFiles = Context.Request.Files;
HttpPostedFile filePhoto = httpFiles["photo"];
string localPhotoFile = Server.MapPath(String.Format("imagefiles/{0}/{1}", "Food", filePhoto.FileName));
filePhoto.SaveAs(localPhotoFile);
NameValueCollection formVars = Context.Request.Form;
string Msg = formVars["message"];
File.WriteAllText("C:/sg.txt", Msg);
return "ok";
}
catch (System.Exception ex)
{
return "error " + ex.Message;
}
}
- IOS 对 .Net WebService 的调用 和上传文件
- IOS调用.Net的WebService时无法访问
- php调用webservice上传文件
- Java调用webservice上传文件
- IOS 调用WebService 实现图片上传处理的解决办法
- 对多线程下载文件的理解和使用ksoap2-android调用WebService的操作步骤
- .Net客户端对WebService的调用(含WS-Security)
- VB.net对资源文件的调用
- WebService上传和下载文件
- .net创建和调用WebService
- php 如何利用 soap调用.Net的WebService asmx文件
- .net调用php的webservice传递图片文件
- Java调用.net的WebService
- Java调用.net的WebService
- Java调用.NET的WebService
- java调用.net的 WebService
- android 调用.net 的webservice
- android 调用.net 的webservice .
- 挑战一个经典的算法题!(坑爹的求和)
- 深入理解Linux内存映射机制
- JDK、IDE、J2EE等基本概念简单介绍
- Android: 缩放图片文件引起的OOM异常
- 程序员必知8大排序3大查找(二)
- IOS 对 .Net WebService 的调用 和上传文件
- JS日期时间代码
- 定义的指针一定要记得初始化,否则后果不堪设想。。。
- dithering
- 程序员必知8大排序3大查找(三)
- Sql 2005 建立作业自动备份的人工方法和程序代码!(经典)
- IE6遇到Nginx的gzip问题
- BFILENAME加载图片示例
- select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET