如何使用Objective-C / Xcode连接到SharePoint列表?

时间:2012-02-17 22:28:40

标签: objective-c xcode sharepoint-2010

我正在尝试使用xCode中的Objective-C连接到SharePoint 2010网站上的列表。有人能指出我在正确的方向吗?我对在SharePoint中开发非常熟悉 - 它是Objective-C,它提出了e问题。谢谢....

4 个答案:

答案 0 :(得分:3)

最好的方法是创建一个Web服务,以便从SharePoint中公开您想要的功能,事实上我相信Sharepoint可能已经有了一些Web服务。

然后使用它,如果它是SOAP使用sudzc。

答案 1 :(得分:3)

有两种服务可用:一种SOAP和一种REST。

SOAP服务名为Lists.aspx,可在[site address] / _ vti_bin / Lists.asmx

获取

REST(实际上是oData)服务称为ListData.svc,可在[site address] / _ vti_bin / ListData.svc

中找到

在这两种情况下,您都需要使用我不知道如何在Objective-C / XCode中执行的服务调用传递凭据。

答案 2 :(得分:0)

我在其他地方找到了这个,但它应该是一个很好的开始

NSString *soapFormat = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
                        "<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/\">\n"
                        "<soap:Body>\n"
                        "<GetListCollection xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\" />\n"
                        "</soap:Body></soap:Envelope>\n"];


    NSLog(@"Request is : %@",soapFormat);

    NSURL *locationOfWebService = [NSURL URLWithString:@"http://192.168.0.114/_vti_bin/lists.asmx"];

    NSLog(@"Web url = %@",locationOfWebService);

    NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc]initWithURL:locationOfWebService];

    NSString *msgLength = [NSString stringWithFormat:@"%d",[soapFormat length]];


    [theRequest addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
    [theRequest addValue:@"http://schemas.microsoft.com/sharepoint/soap/GetListCollection"
                            forHTTPHeaderField:@"SOAPAction"];


[theRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"];
    [theRequest setHTTPMethod:@"POST"];
    //the below encoding is used to send data over the net
    [theRequest setHTTPBody:[soapFormat dataUsingEncoding:NSUTF8StringEncoding]];


    NSURLConnection *connect = [[NSURLConnection alloc]initWithRequest:theRequest delegate:self];

    if (connect) {
        webData = [[NSMutableData alloc]init];
    }
    else {
        NSLog(@"No Connection established");
    }

答案 3 :(得分:0)

Sharepoint 2010和2013现在有一个RestFul API,可以在“http://site_url/_api”访问。

从这里你可以附加/ _api / web / lists / GetByTitle('list_name'),你就可以获得列表内容。你可以用这个api做更多的事情。要详细了解支持的操作,请访问this link