Jsoup在CFscript中执行POST连接

4

我希望解析的页面只能通过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中未定义

我尝试了几乎所有的方法。 我无法同时使用.method()和.execute()。

如果我直接调用.get()或.post(),那么我就不能当时检查statusCode()。


2
为什么会被踩?它包含了明确的示例,错误信息以及描述了问题和他们尝试解决问题的方式。 - Leigh
2个回答

5
如果您查看API,Method是另一个JSoup类。在访问POST常量之前,您需要创建该类的实例。此外,Method与典型的Java类有些不同。它是一个枚举(或常量)。它们基本上被处理为内部类,这需要使用createObject的特殊语法
methodClass = createObject("java", "org.jsoup.Connection$Method");
response = jsoup.connect("http://example.com").method(methodClass.POST).execute();

可以运行了!那个特殊的语法提示。谢谢! - master-lame-master
那是一个很棒的提示,Leigh。你有博客吗? - Mark A Kruger
@MarkAKruger - 我曾经也这么认为 :-) 虽然我已经知道内部类语法有一段时间了,但我相信我不是第一个提到它的人。如果 Raymond Camden 等人没有比我更早地提到它,我会非常惊讶的 ;-) - Leigh
@leigh 没关系 - 你仍然应该这样做。如果你想在我的节目中做客,请告诉我,我很乐意邀请你。 - Mark A Kruger

0

或者,您可以直接调用post()方法:

response = jsoup.connect("URL").post();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接