![cURL을 사용하여 이 양식을 작성하고 제출할 수 있나요?](https://rvso.com/image/1604271/cURL%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%9D%B4%20%EC%96%91%EC%8B%9D%EC%9D%84%20%EC%9E%91%EC%84%B1%ED%95%98%EA%B3%A0%20%EC%A0%9C%EC%B6%9C%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
직장에서 양식에 데이터를 제출하려고 합니다. 나는 그것을 방해하는 페이지의 "기술" 때문에 나의 순진한 접근 방식이 작동하지 않는다고 의심합니다. 기본적으로 웹페이지(죄송하지만 여기에 링크할 수 없습니다. 공개되지 않음)에는
<form action="login.php" method="get" name="LogIn" class="form-signin">
그런 다음 다음과 같은 여러 입력이
<input type="text" class="form-control" id="docIdent" name="docIdent" placeholder="@" required>
그래서 다음 cURL 명령을 시도하고 있습니다.
curl -d "docIdent=WHATEVER" -d "type=WHATEVER" -d "comment=" URL
필요한 것으로 보이는 세 가지 데이터 조각은 다음을 통해 얻었습니다. 1. .html을 다운로드합니다. 2. 양식 방법을 "post"에서 "get"으로 변경하고 브라우저에서 엽니다. 3. 양식을 작성하고 제출합니다(물론 "페이지를 찾을 수 없음" 오류가 발생하지만 새 URL에는 빈 세 번째 필드를 포함하여 해당 데이터가 모두 포함되어 있습니다).
글쎄, 그것은 작동하지 않습니다. (동일한 로그인 페이지가 다시 나타나고 시도할 때 로그인이 없었는지 확인할 수 있습니다.) 나는 이러한 것들에 대해 잘 모르지만 페이지에 없는 다른 코드가 있을 수 있다고 생각합니다.
<script src="dist/js/bootstrap.min.js"></script>
<script src="dist/js/jquery-3.4.1.min.js"></script>
<script src='js/fns.js'></script>
물론 양식 열기에 있는 "login.php"도 마찬가지입니다. 다른 많은 게시물에서 내 구문이 올바른 것 같습니다. 자동 로그인에 대한 희망이 있습니까(내가 시도하고 있는 한 줄과 같이 cron에 넣을 bash 스크립트 유형)? 감사해요.
답변1
결국 나는 다음과 같은 해결책을 찾았습니다. 내 브라우저(Firefox, 웹 개발자 도구)를 사용하여 요청을 캡처했습니다. 그것은 다음과 같이 보였습니다:
curl 'URL' -H 'Host: SOMETHING' -H 'User-Agent: SOMETHING' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en,en-US;q=0.5' --compressed -H 'Referer: SOMETHING' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' --data 'WHATEVER'
... 그리고 매번 변경되지 않는 나머지가 충분한지 확인하고 싶어서 제거한 쿠키 정보도 있습니다. 그리고 그것은 효과가 있었습니다. 유용한 지원을 해주신 Grarity에게 정말 감사드립니다.
답변2
Firefox 웹 도구를 사용하면 모든 HTTP 요청(GET 또는 POST 양식)을 캡처할 수 있습니다.
웹 도구 -> 네트워크 -> 양식 보내기 -> 양식 URL의 컨텍스트 메뉴(양식 스크립트를 마우스 오른쪽 버튼으로 클릭) -> 복사 => cURL 주소로 복사
답변3
게시할 때 다음을 사용해야 한다고 생각합니다.-X 포스트
양식으로 보내려는 데이터 : --데이터 원시 'formField1=값1&formField2=값2'
curl 'http://localhost:8000/' -X POST --data-raw 'fname=John&lname=Smith'