дженкинс: плагин HTTP-запроса возвращает статус 200 вместо содержимого

#jenkins #jenkins-pipeline #jenkins-plugins

#дженкинс #дженкинс-конвейер #дженкинс-плагины

Вопрос:

Я пытаюсь использовать jenkins HttpRequest для получения содержимого веб-страницы, и, как ни странно, я получаю только статус 200 вместо фактического кода. ниже приведен воспроизводимый скрипт и его журнал консоли.

 pipeline {
    agent any
    environment {
        def response = httpRequest "https://news.yahoo.com/"
        }
        stages {
            stage('Build'){
                steps {
                    script {
                        echo "${response}"
                        echo response.getContent()
                    }
                }
            }
        }
    }
 

журнал консоли:

 HttpMethod: GET
URL: https://news.yahoo.com/
Sending request to url: https://news.yahoo.com/
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
....
Status: 200
....
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: java.lang.String.getContent() is applicable for argument types: () values: []
 

Ответ №1:

согласно официальной документации здесь, response.content содержит содержимое ответа без заголовков.

Итак, ваш код должен быть таким :

 pipeline {
    agent any
    environment {
        def response = httpRequest "https://news.yahoo.com/"
        }
        stages {
            stage('Build'){
                steps {
                    script {
                        echo "${response}"
                        echo response.content
                    }
                }
            }
        }
    }