使用REST调用从Project Online签出项目

时间:2017-09-14 22:47:58

标签: rest project sharepoint-online

首先,我确认有权通过Web界面签出项目。现在,我正在尝试使用REST调用复制该结账,我无法通过'HTTP / 1.1 403 FORBIDDEN'。

CloseableHttpClient httpclient = WinHttpClients.createDefault();
// url = http://<site>/ProjectServer/Projects(guid'xxxx')/checkOut
HttpPost post = new HttpPost(baseURL + URL);
post.setHeader("Accept", "application/json;odata=verbose");
post.setHeader("Content-type", "application/json");
post.setHeader("X-RequestDigest", getDigest());
post.setEntity(new StringEntity(""));
CloseableHttpResponse response = httpclient.execute(post);
response.close();
httpclient.close();

关于我在调用堆栈中做错了什么或丢失的任何想法?

1 个答案:

答案 0 :(得分:0)

HTTP 403表示服务器可以访问资源并处理请求,但由于权限而拒绝采取任何进一步的操作。请参阅以下说明。

例如:如果支持,管理员是项目中定义的两个角色,只有管理员有权创建新资源。

@RolesAllowed("Admin")
@POST
@Consumes("application/json")
public Response createProject(Project p)
{
    ..
}

如果请求是由用户&#34;支持&#34;,则服务可以验证用户&#34;支持&#34;但由于用户没有&#34; Admin&#34;特权。

尝试向合法用户添加身份验证标头,看看它是否能解决您的问题。