大家好,
最近我在SMP3.0原生ODataSDK中进行了OData读取、创建、更新和删除操作。
这里是OData服务的示例代码
:8080/sap/opu/odata/IWFND/RMTSAMPLEFLIGHT/TravelagencyCollection
获取请求格式
[RequestBuilder setRe]任务类型:HTTPRequestType];
//为OData请求启用XCSRF处理
[RequestBuilder en是的];
//使用端点URL
idgetRequest=[RequestBuilder requestWithURL:[[NSURL alloc]initWithString:appEndPoint]]初始化请求类;
//为端点添加用户名和密码
[getRequest se]tUsername:用户名];
【获取请求se】t密码:密码];
///设置我们的请求头。
[getRequest setRequestMethod:@"GET"];
[getRequest addRequestHeader:@"X-Requested-With"value:@"XmlHttpRequest"];
[getRequest addRequestHeader:@"Content Type"value:@"application/xml;charset=UTF-8〃];
[getRequest addRequestHeader:@"Accept"value:@"application/xml,application/atom+xml"];
//此类是对任何通知(成功和失败)的委托回调
[getRequest se]删除:自];
[getRequest]setDidFinishSelector:@选择器(handleReqSuccess:)];
[getRequestsetDidFailSelector:@选择器(handleReqFailed:)];
//每个请求都可以标记一个数字。
getRequest.requestTag=tag;//对变更请求有用。
//启动我们的请求。
[getRequest startAsynchronous];
请求后格式
[RequestBuilder setRe]任务类型:HTTPRequestType];
[RequestBuilder en是的];
idpostRequest=[RequestBuilder requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@",appEndPoint,collectionName]];
[postRequest setRequestMethod:@"POST"];
[postRequest addRequestHeader:@"Content Type"value:@"application/json;charset=UTF-8〃];
[postRequest addRequestHeader:@"Accept"value:@"*/*"];
//这里从GET响应中获取cSRFToken.
[postRequest addRequestHeader:@"x-csrf-token"值:cSRFToken];
NSMutableData*postData;
//GetEntry是一个ODataObject,它对集合
ODataEntry const*postBody=[[ODataEntry alloc]initWithEntitySchema中的单个条目有GET done响应:[[[自助文档getSchema]获取收集ionByName:self.entityName]getEntitySchema]];
ODataPropertyValueObject*filterValue=[postBody getPropertyValueByPath:@"agencynum"];///agencynum是主键或唯一值
filterValue.rawValue文件=@"00000127〃;
ODataPropertyValueObject*filterValue1=[postBody getPropertyValueByPath:@"agencyname"];
filterValue1.rawValue=@"BestAgency";
//JSON post body可以使用以下代码构建:
ODataEntryBody*entryBody=buildODataEntryRequestBody(postBody,ENTRY\u OPERATION\u CREATE,自助文档,否,BUILD_STYLE_JSON);
postData=[[entryBody.body文件达图辛gEncoding:NSUTF8StringEncoding]可变拷贝];
[postRequest addRequestHeader:@"Content Length"值:[NSString stringWithFormat:@"%i",[postData Length]];
[postRequest se]tPostBody:后数据];
[postRequest se删除:自];
//getRequest.requestTag=标签;//对变更请求有用。
//启动我们的请求。
[postRequest startAsynchronous];
放置请求格式
[RequestBuilder setRe]任务类型:HTTPRequestType];
[RequestBuilder en是的];
idputRequest=[RequestBuilder requestWithURL:[nsUrlUrlWithString:[NSString stringWithFormat:@"%@/%@(%@)",物联网的应用实例,appEndPoint,collectionName,agencynum]];
[putRequest setRequestMethod:@"PUT"];
[putRequest addRequestHeader:@"Content Type"value:@"application/json;charset=UTF-8〃];
[putRequest addRequestHeader:@"Accept"value:@"*/*"];
[putRequest addRequestHeader:@"x-csrf-token"值:cSRFToken];
NSMutableData*postData;
ODataEntry const*postBody=[[ODataEntry alloc]initWithEntitySchema:初始值:[[[自助文档getSchema]获取收集ionByName:self.entityName]getEntitySchema]];
ODataPropertyValueObject*filterValue=[postBody getPropertyValueByPath:@"agencyname"];
filterValue.rawValue文件=@"NewAgencyName";
//JSON post body可以使用以下代码构建:
ODataEntryBody*entryBody=buildODataEntryRequestBody(postBody,宁波大数据,ENTRY\u OPERATION\u CREATE,自助文档,否,BUILD_STYLE_JSON);
postData=[[entryBody.body文件达图辛gEncoding:NSUTF8StringEncoding]可变拷贝];
[putRequest addRequestHeader:@"Content Length"值:[NSString stringWithFormat:@"%i",点云,[postData Length]];
[putRequest se]tPostBody:后数据];
[putRequest se删除:自];
putRequest.requestTag=tag;
//启动我们的请求。
[putRequest startAsynchronous];
删除请求格式
[RequestBuilder setRe]任务类型:HTTPRequestType];
[RequestBuilder en是的];
iddeleteRequest=[RequestBuilder requestWithURL:[NSURL URLWithString:[NSString stringWithFormat@"%@/%@(%@)",购返利,appEndPoint,collectionName,agencynum]];
[deleteRequest setRequestMethod:@"Delete"];
[deleteRequest addRequestHeader:@"Content Type"value:@"application/json;charset=UTF-8〃];
[deleteRequest addRequestHeader:@"Accept"value:@"*/*"];
[deleteRequest addRequestHeader:@"x-csrf-token"值:self.cSRFToken];
[删除请求]删除:自];
deleteRequest.requestTag=标签;
//开始我们的请求。
[删除请求启动同步];
问候
湿婆钱都
美好的信息和有用的信息。。!!
嗨,Chandu,返利app下载,
我可以在smp驾驶舱上注册设备。但是当我试图获取数据时,我得到以下信息错误。偶数我使用上面的代码获取数据。
启用脱机…
2014-10-10 12:39:45.044 Testsmp3[851:34851]注册可达性通知程序为:db41vvv12.home
2014-10-10 12:39:45.045 Testsmp3[851:34854]Start queue…
2014-10-10 12:39:45.045 Testsmp3[851:34851]UrlString::8080
2014-10-10 12:39:45.046 Testsmp3[851:34851]初始化缓存
2014-10-10 12:39:45.057 Testsmp3[851:34854]Error Domain=EncryptionKeyError Code=5001"操作无法完成。(EncryptionKeyError error 5001.)"