У меня есть код модульного теста, который отлично работает годами. И он продолжает нормально работать для каждого запроса OData, кроме этого. Но вдруг адрес:
http://services.odata.org/V2/Northwind/Northwind.svc/Employees?$select=FirstName&$filter=(ДатаРождения%20eq%20datetime'1952-02-19T00:00:00Z')
Возвращает 400. Мой код для вызова:
String url = "http://services.odata.org/V2/Northwind/Northwind.svc/Employees?$select=FirstName&$filter=(BirthDate%20eq%20datetime'1952-02-19T00:00:00Z')";
String requestParams = "http.header.Accept=application/json;";
// ...
HttpGet httpGet = new HttpGet(NetUtils.encodeUri(url));
setHeader(httpGet, url, requestParams);
response = httpClient.execute(httpGet);
if (response.getStatusLine().getStatusCode() != 200)
throw new IOException("Error: " + response.getStatusLine() + ". Reading url " + url);
Почему это вдруг 400? И только при вызове из Java, отлично работает в Chrome.
Мальчик, я чувствую себя немым - да, это так. Спасибо большое. (Если вы поставите это как ответ, я с удовольствием выберу его.)




NetUtils.encodeUri(url)- URL уже закодирован.