I am calling a Sharepoint 2010 oData service from Java which is resulting in a 400 error. I can connect to a Sharepoint 2010 list in XML format via the same code (using NTLM) successfully.
I see a related post HttpClient using both SSL encryption and NTLM authentication fails which talks of the same service (listdata.svc) and the 400 error.
Does anyone know what exact setting was used to resolve the error in the post above? Does anyone know if they are referring to the .NET Authorization Rules in IIS?
We are using IIS 7.5.
My code looks like this:
String responseText = getAuthenticatedResponse(Url, domain, userName, password);
System.out.println("response: " + responseText);
The method uses uses 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();
}
The error I get is :
Response Excerpt:
HTTP/1.1 400 Bad Request..Content-Type: application/xml
<message xml:lang="en-US">Media type requires a '/' character. </message>
A similar issue is mentioned at Microsoft Social media types. Anyone run into this and know how to resolve this?
Any help would be much appreciated!
Vanita