Jsoup в CFscript выполняет соединение как POST

Страницу, которую я хочу проанализировать, можно получить только методом POST.

Это легко для Java, как я вижу:

import org.jsoup.Jsoup;
Response res = Jsoup.connect("URL").method(Method.POST).execute();
Document doc = res.parse();

Я не мог произвести то же самое, используя CFscript.

jsoup = createObject("java", "org.jsoup.Jsoup");
response = jsoup.connect("URL").method(Method.POST).execute();
if (response.statusCode() == 200)
{
    doc = response.parse();
}

-ERR Элемент POST не определен в МЕТОДЕ

Я перепробовал почти все. Я не смог использовать.method () и.execute() одновременно.

Если я вызываю.get () или.post () напрямую, я не могу проверить statusCode() тогда.

2 ответа

Решение

Если вы посмотрите на API, метод является другим классом JSoup. Вам нужно создать экземпляр этого класса, прежде чем вы сможете получить доступ к константе POST. Кроме того, метод немного отличается от вашего типичного Java-класса. Это перечисление (или константа). По сути, они обрабатываются как внутренние классы, которые требуют специального синтаксиса с createObject:

methodClass = createObject("java", "org.jsoup.Connection$Method");
response = jsoup.connect("http://example.com").method(methodClass.POST).execute();

Кроме того, вы можете вызвать post() метод напрямую:

response = jsoup.connect("URL").post();
Другие вопросы по тегам