Jsoup发布数据并解析CFscript上的替代URL

时间:2016-03-29 21:33:39

标签: coldfusion jsoup cfml coldfusion-11

我需要使用CFscript中的Jsoup从npm install获取和解析页面。

如果页面状态不正常或数据已损坏或为空,我应该尝试primary_URL的替代页面。

secondary_URL仅接受POST请求,我不知道cfscript中的操作方法

primary_URL默认接受GET

这是一个想法:

secondary_URL

如果响应正常但数据似乎是否已损坏或为空,如何跳转到<cfscript> jsoup = createObject("java", "org.jsoup.Jsoup"); response = jsoup.connect(primary_URL).userAgent("#CGI.Http_User_Agent#").timeout(10000).method(Connection.Method.POST).execute(); // How to use Method.POST in this case??? if(response.statusCode() == 200) { doc = response.parse(); theData = doc.select("div##data"); ... `some other parsing and SQL UPDATE routine` } else { response = jsoup.connect(secondary_URL).userAgent("#CGI.Http_User_Agent#").timeout(10000).execute(); // default is GET if(response.statusCode() == 200) { doc = response.parse(); theData = doc.select("div##same_data"); ... `some other parsing and SQL UPDATE routine` } } </cfscript> ?一种secondary_URL运营商?

运行ColdFusion 11。

1 个答案:

答案 0 :(得分:4)

  

如果响应正常但数据似乎是否已损坏或为空,如何跳转到secondary_URL?一种goto运算符?

不是仅检查statusCode,而是调用函数。在此函数内执行所有必要的检查(损坏的数据,空数据......)。

<cfscript>

    function IsValid(response) {
       // Perform all the tests here...
       // Return TRUE on success or FALSE otherwise

       return true;
    }

    jsoup = createObject("java", "org.jsoup.Jsoup");
    response = jsoup //
                 .connect(primary_URL) //
                 .userAgent("#CGI.Http_User_Agent#") //
                 .timeout(10000) //
                 .post();  // Simply call the post() method for posting...
    if( IsValid(response) ) {

    } else {
        response = jsoup //
                    .connect(secondary_URL) //
                    .userAgent("#CGI.Http_User_Agent#") //
                    .timeout(10000) //
                    .get();  // Make your intent clear

        if ( IsValid(response) ) {
            // ...
        }
    }

</cfscript>