我开始知道我们可以使用REST apis从SharePoint站点获取数据。此外,SharePoint从2010年开始支持REST。我获得了用于列出SharePoint数据及其详细信息的API。它是“ListData.svc”。是否有任何其他类似于我们可以验证我们的网站的API。我尝试了浏览器(listdata.svc),在此之前我已登录。如果我已注销并执行“siteUrl / _vti_bin / ListData.svc”,我无法获得结果,请求超时或有时它显示网页不可用。如果有人知道如何在iPhone应用程序中使用SharePoint,请分享相同内容。
答案 0 :(得分:2)
阅读本文:http://sharepointsemantics.com/2011/07/the-client-side-object-model-help-with-headless-authentication-in-sharepoint-online/请务必阅读Chris Johnson撰写的链接文章,并提供解决您的身份验证问题的信息。
Sidenote,您几乎必须在SharePoint端使用表单身份验证。
答案 1 :(得分:2)
以下是我通过http对SharePoint 2010进行NTLM身份验证的方法。它可以在任何对listdata.svc的调用中返回JSON字典(例如调用URL yourdomain / _vti_bin / listdata.svc / YourList):
抓取AFNetworking并按照说明将其导入XCode应用程序。
当您在项目中进行AFNetworking编译时,您需要创建AFHTTPClient类的AFNetworking框架。例如。在iOS XCode项目中添加一个新类,并选择AFHTTPClient作为它的对象类型。
一旦你有了子类,就会得到如下内容:
YourHTTPClient.h
#import "AFHTTPClient.h"
#import "AFJSONRequestOperation.h"
#import "AFNetworkActivityIndicatorManager.h"
typedef void(^OLClientSuccess) (AFJSONRequestOperation *operation, id responseObject);
typedef void(^OLClientFailure) (AFJSONRequestOperation *operation, NSError *error);
@interface OLHTTPClient : AFHTTPClient
{
NSString *strBASEURL;
NSString *strUser;
NSString *strPassword;
}
@property (nonatomic, retain) NSString *strUser;
@property (nonatomic, retain) NSString *strPassword;
@property (nonatomic, retain) NSString *strBASEURL;
+(id) sharedClient;
- (void)setUsername:(NSString *)username andPassword:(NSString *)password;
-(void) getStuff:(OLClientSuccess) success failure:(OLClientFailure) failure;
@end
在YourHTTPClient.m文件中,您可以使用下面的代码,但在此.m文件中,您将实现自定义方法调用以从SharePoint获取列表数据。见下文:
来自YourHTTPClient.m的验证代码片段:
- (void)getPath:(NSString *)path parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
NSURLRequest *request = [self requestWithMethod:@"GET" path:path parameters:parameters];
AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure];
[operation setAuthenticationChallengeBlock:^(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge) {
NSURLCredential *newCredential = [NSURLCredential credentialWithUser:self.User password:self.password persistence:NSURLCredentialPersistenceForSession];
[challenge.sender useCredential:newCredential forAuthenticationChallenge:challenge];
}];
[self enqueueHTTPRequestOperation:operation];
}
@end
我只是在配置了使用NTLM进行身份验证的SharePoint 2010环境中尝试了上述操作。如果您需要使用Kerberos进行身份验证,可能需要重新配置,但我怀疑它也可以使用AFNetworking。
答案 2 :(得分:0)
看看这个项目,它支持SharePoint 2013 RestAPI.Its为我工作,并且非常肯定它也适合你。
https://github.com/jimmywim/SPRestAPI
默认情况下,SPRESTQuery在XMl中提供响应。如果要在json中进行响应,则必须在executeQuery方法中编写此行。
[apiRequest setValue:@"application/json;odata=verbose" forHTTPHeaderField:@"Accept"];