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();