Использование XML-RPC с файлами cookie в JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Использование XML-RPC с файлами cookie в Java

Сообщение Anonymous »

Я пытаюсь загрузить данные с веб-сайта с помощью XML-RPC. Пока это работает довольно хорошо, но не на страницах, требующих входа в систему. Для этого я отправляю свое имя пользователя и пароль.
От коллеги я знаю, что файлы cookie также необходимы. А именно PHPSESSID и еще один, назовем его OTHER_COOKIE ;)
Я извлекаю их из своего браузера.
Однако я не могу использовать эти файлы cookie уже два дня. . Я не могу найти способ заставить XmlRpcClient взять с собой эти файлы cookie. Всегда получаю ответ, что у меня нет доступа к этим страницам. Вероятно, для этого следует использовать такие классы, как XmlRpcTransport или аналогичные, но я не могу добиться большего. Ситуация с документацией ужасная.
Вот код, который, по крайней мере, работает для страниц, не требующих входа в систему.
Переведено с помощью DeepL. com (бесплатная версия)
(Если это играет роль: страница, которую я пытаюсь прочитать, является «МойнМойнВики».)
private final XmlRpcClient client;

public MoinMoinWikiClient(String baseUrl, String username, String password) throws Exception {

String endpointUrl = baseUrl + "/moinmoin/?action=xmlrpc2";

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl() {
@Override
public String getBasicUserName() {
return username;
}

@Override
public String getBasicPassword() {
return password;
}
};

config.setServerURL(new URL(endpointUrl));

this.client = new XmlRpcClient();
client.setConfig(config);

String examplePageName = "any_page";

HashMap result = (HashMap)client.execute("getPageInfo", new Object[]{examplePageName});

info("Initialized XML-RPC client with URL: " + xmlRpcEndpoint);

}

Я два дня изучал решения и документацию. Я давно и подробно расспрашивал ChatGPI ;)
Бесчисленное количество предполагаемых решений заканчивалось тем, что классы были неизвестны и их нельзя было добавить в Maven. например CookieManager, CookiesStore ...
public MoinMoinWikiClient(String wikiUrl, String username, String password) throws Exception {
String endpointUrl = wikiUrl + "/moinmoin/?action=xmlrpc2";

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl() {
@Override
public String getBasicUserName() {
return username;
}

@Override
public String getBasicPassword() {
return password;
}
};

config.setServerURL(new URL(endpointUrl));

BasicCookieStore cookieStore = new BasicCookieStore();
List cookies = new ArrayList();
cookies.add(new org.apache.http.impl.cookie.BasicClientCookie("PHPSESSID", Main.PHPSESSID));
cookies.add(new org.apache.http.impl.cookie.BasicClientCookie("OTHER_COOKIE", Main.OTHER_COOKIE));
cookieStore.addCookies(cookies.toArray(new Cookie[0]));

CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build();

this.client = new XmlRpcClient();
client.setConfig(config);
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... es-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»