2016-03-29 11 views
2

Мне нужно получить и проанализировать страницу с primary_URL с использованием Jsoup в CFscript.Jsoup для публикации данных и анализа альтернативных URL-адресов на CFscript

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

primary_URL принимает POST запросы только и я не знаю, как это сделать в cfscript

secondary_URL принимает GET по умолчанию

Это идея:

<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 в случае, если ответ в порядке, но данные кажутся текущими или пустыми? Какой-то оператор goto?

Запуск ColdFusion 11.

ответ

4

Как перейти к secondary_URL в случае ответ в порядке, но данные появляются, чтобы быть currupt или пустой? Какой-то оператор goto?

Вместо того, чтобы проверять только статусCode, вызовите функцию. Внутри этой функции выполняются все необходимые проверки (поврежденные данные, пустые данные ...).

<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>