РЕДАКТИРОВАТЬ: ОК Я обнаружил, что это определенно проблема с аутентификацией: этот короткий скрипт Python прекрасно работает:
import requests
from requests.auth import HTTPBasicAuth
URL = "https://wiki.myCompany.corp/confluence-dev/rest/api/content/180158489";
r = requests.get(URL, auth = HTTPBasicAuth('myUser', 'myPass'), verify=False)
r.raise_for_status()
print(r.json())
Почему он не работает с Java??
Исходный вопрос:
Я пытаюсь написать простой Http-запрос, используя Apache httpclient / httpcore для получения содержимого страницы Confluence, но все, что яget is status 404.
Это мой код:
String url = "https://wiki.mycompany.corp/confluence-dev/rest/api/content/180158489";
HttpHost proxy = new HttpHost("proxy.myCompany.at", 57165);
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("myUsername", "myPassword");
provider.setCredentials(AuthScope.ANY, credentials);
HttpClientBuilder builder = HttpClientBuilder.create();
builder.setDefaultCredentialsProvider(provider);
builder.setRoutePlanner(routePlanner);
HttpClient client = builder.build();
HttpGet get = new HttpGet(url);
HttpResponse r = client.execute(get);
System.out.println(r.getStatusLine().toString());
Вывод: HTTP / 1.1 404 Не найдено
Когда я открываю этот URLв браузере я получаю правильное слияние JSON обратно, пока я вхожу в систему. Когда я выхожу и пытаюсь открыть этот URL в браузере, я получаю JSON
{
"statusCode":404,
"data":
{
"authorized":false,
"valid":true,
"allowedInReadOnlyMode":true,
"errors":[],"successful":false
},
"message":"No content found with id: ContentId{id=180158489}",
"reason":"Not Found"
}
Так что для меня это выглядиттак как-то аутентификация из моего кода не работает правильно.
У вас есть идеи, что здесь может быть не так?