我从Java调用一个SharePoint 2010的OData服务,这是导致400错误。 我可以以XML格式通过相同的代码(使用NTLM)成功连接到SharePoint 2010列表。
我看到相关的帖子HttpClient的同时使用SSL加密和NTLM身份验证失败,同样的服务(listdata.svc)和400错误的其中谈到。
有谁知道用什么确切的设置来解决上述职位的错误? 有谁知道,如果他们指的是.NET授权规则在IIS中?
我们使用的是IIS 7.5。
我的代码如下所示:
String responseText = getAuthenticatedResponse(Url, domain, userName, password);
System.out.println("response: " + responseText);
采用该方法使用Java 1.6 HttpURLConnection类:
private static String getAuthenticatedResponse(
final String urlStr, final String domain,
final String userName, final String password) throws IOException {
StringBuilder response = new StringBuilder();
Authenticator.setDefault(new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
domain + "\\" + userName, password.toCharArray());
}
});
URL urlRequest = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) urlRequest.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("GET");
InputStream stream = conn.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(stream));
String str = "";
while ((str = in.readLine()) != null) {
response.append(str);
}
in.close();
return response.toString();
}
我得到的错误是:
Response Excerpt:
HTTP/1.1 400 Bad Request..Content-Type: application/xml
<message xml:lang="en-US">Media type requires a '/' character. </message>
类似的问题在提到微软社交媒体类型 。 任何人都遇到这个,并知道如何解决这个问题?
任何帮助将非常感激!
Vanita