curl
방출된 항목에서 추출 해야 합니다 .
- 내 명령이 끔찍하게 실패할 경우를 대비해 0이 아닌
?$
반환 코드가 포함된 bash 오류 메시지 - 연결된 서버에서 반환된 http 상태 코드
- 20x가 아닌 상태 코드와 함께 제공되는 오류 메시지
- 명령 출력 메시지
그리고 네 가지를 모두 네 가지 다른 변수로 전달합니다.
제가 할 수 있는 일은 다음과 같습니다. 다음 요청으로 작업공간이 존재하지 않는 경우 작업공간을 만듭니다.
URL=$1
USER=$2
PASSWORD=$3
WORKSPACE=ecoemploi
# Créer un workspace ecoemploi (workspace par défaut)
CREATE_WORKSPACE_JSON=$(cat <<EOF
{
"workspace":
{
"name": "$WORKSPACE"
}
}
EOF
)
CREATE_WORKSPACE_RESPONSE=$(curl --silent -X POST --write-out "%{http_code}" \
-H 'Content-type: text/json' -u "$USER:$PASSWORD" \
"$URL/workspaces" -d "$CREATE_WORKSPACE_JSON")
if [ $? -ne 0 ]; then
echo "La création de workspace dans geoserver a échoué avec le code $? : $CREATE_WORKSPACE_RESPONSE"
exit $?
fi
echo "$CREATE_WORKSPACE_RESPONSE"
curl --silent -X POST --write-out '%{http_code}' -H 'Content-type: text/json' -u admin:geoserver http://localhost:8080/geoserver/rest/workspaces -d '{"workspace": {"name": "ecoemploi"}}'
예를 들어, .
내가 연결하고 있는 서버의 동작이 다음과 같기 때문에 변수 간에 디스패치해야 합니다.
모든 것이 정상이고 작업공간이 존재하지 않으면 다음과 같이
echo "$CREATE_WORKSPACE_RESPONSE"
표시됩니다.
ecoemploi201
대상 작업공간이 이미 존재하는 경우
echo
다음이 표시됩니다.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 409 Workspace 'ecoemploi' already exists</title>
</head>
<body><h2>HTTP ERROR 409 Workspace 'ecoemploi' already exists</h2>
<table>
<tr><th>URI:</th><td>/geoserver/rest/workspaces</td></tr>
<tr><th>STATUS:</th><td>409</td></tr>
<tr><th>MESSAGE:</th><td>Workspace 'ecoemploi' already exists</td></tr>
<tr><th>SERVLET:</th><td>dispatcher</td></tr>
</table>
<hr/><a href="https://eclipse.org/jetty">Powered by Jetty:// 9.4.48.v20220622</a><hr/>
</body>
</html>
409
--output /dev/null
명령에 a를 추가 하면 다음이 반환됩니다.
201
409
하지만 두 경우 모두에 대한 설명을 잃게 됩니다.
- 상태
201
코드는 stdout에서 생성된 작업공간의 이름을 전달합니다. - 실패 메시지
409
에는 stdout으로 보이는 출력이 표시됩니다. stderr에 무엇이 있는지 알고 싶습니다.
다음 굵은 변수를 채우는 명령문을 어떻게 작성합니까?
작업공간 오류 생성=$(curl --silent -X POST --write-outHTTP_STATUS_CODE
-H '콘텐츠 유형: text/json' -u "$USER:$PASSWORD"
"$URL/workspaces" -d "$CREATE_WORKSPACE_JSON") 1>CREATE_WORKSPACE_STDOUT2>CREATE_WORKSPACE_STDERR
최종 사용자 메시지를 검사하고 작성하기 위해 변수 $CREATE_WORKSPACE_ERROR
를 $HTTP_STATUS_CODE
보내고 생성하시겠습니까 ?$CREATE_WORKSPACE_STDOUT
$CREATE_WORKSPACE_STDERR