Java에서 Sharepoint 2010 oData 서비스를 호출하여 400 오류가 발생했습니다. NTLM을 사용하여 동일한 코드를 통해 XML 형식의 Sharepoint 2010 목록에 연결할 수 있습니다.Sharepoint 2010 oData에 Java HTTP 호출이 실패합니다.
동일한 서비스 (listdata.svc)와 400 오류를 말하는 관련 게시물 HttpClient using both SSL encryption and NTLM authentication fails이 있습니다.
위의 게시물에서 오류를 해결하기 위해 사용 된 정확한 설정을 아는 사람이 있습니까? IIS의 .NET 권한 부여 규칙을 언급하는 사람은 누구입니까?
IIS 7.5를 사용하고 있습니다.
내 코드는 다음과 같습니다
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>
유사한 문제는 언급
방법은 사용String responseText = getAuthenticatedResponse(Url, domain, userName, password);
System.out.println("response: " + responseText);
자바 1.6 HttpURLConnection의 사용 Microsoft Social media types에 있습니다. 누구든지이 문제를 해결하고이를 해결하는 방법을 알고 있습니까?
도움이 될 것입니다.
Vanita
팁 주셔서 감사합니다. 먼저 HTTP 컴포넌트를 시도했지만 Sharepoint/IIS7과 함께 NTLM/SSL을 사용하여 문제가 발생했습니다. 이 특정 사용 사례에 대해 HTTPUrlconnection이 훨씬 잘 작동했습니다. Java 1.6+ API처럼 NTLM 인증 문제가 조금 개선되었습니다. – VC1