2014-11-17 3 views
0

에서 포스트 양식을 얻을 데이터가 나는 떠들썩한 파티에서 양식을 제출하려고 :CURL : bash는

curl -X POST --data-urlencode "login=123456" --data-urlencode "password=123" 
--data-urlencode "returnUrl=/Katalog/SekceCsv/846?katalog=501" http://xy.com/user/Login 

결과 :

Object moved to here. 

내가 /user/Login 스크립트와 후 양식 데이터를 제출 스크립트가 성공적으로 로그인되면 "returnUrl"에 선언 된 값으로 리디렉션됩니다. 어쩌면 이것이 "returnUrl"의 원하는 (내가 csv 파일 인) 응답을 얻지 못하는 지점입니다.

내가 구글에서 무엇을 발견 :

curl -X POST -L --data-urlencode "login=123456" --data-urlencode "password=123" 
--data-urlencode "returnUrl=/Katalog/SekceCsv/846?katalog=501" http://xy.com/user/Login 

결과 :

Length Required. HTTP Error 411. The request must be chunked or have a content length. 

내가 어떻게이 문제를 해결하려면 더 이상 정보를 찾을 수 없습니다 내가 -L 옵션과 함께 리디렉션에 따라 활성화해야 . 나는 내가 필요로 무엇 CSV 파일을 가져 제출 누르면,이가 작동

<html> 
<head></head> 
<body> 
<form method="post" id="LoginForm" action="http://xy.com/user/Login"> 

      <input type="hidden" value="/Katalog/SekceCsv/846?katalog=501" name="returnUrl" id="returnUrl"> 
      <input type="text" value="" style="width:150px;" name="login" id="login"> 
      <input type="password" style="width:150px;" name="heslo" id="heslo"> 

      <input type="submit"> 
</form> 
</body> 

:

나는 형태 간단한 HTML 파일을 만들려고.

답변

0

그런 식으로 작동합니까?

curl -dL "login=123456&password=123&returnUrl=/Katalog/SekceCsv/846?katalog=501" http://xy.com/user/Login 

편집 :

의견을 읽은 후, 나는 당신이 뭔가 이상한하려고 생각합니다.

로그인 페이지와 얻을 페이지가 있으면 curl 명령이 2 개 있어야합니다. 쿠키를 사용하여 성공한 로그인을 추적 할 수 있습니다. 같은

뭔가 :

curl -X POST -L -b /tmp/c -c /tmp/c -d "login=123456&password=123" http://xy.com/user/Login 
curl -X POST -L -b /tmp/c -c /tmp/c -d "returnUrl=/Katalog/SekceCsv/846?katalog=501" http://xy.com/user/ 

그냥 몇 가지 가정 ... 내가 이미 (한 줄에 변수를 전달)하는 것이 시도하지만, 불행히도 작동하지

+0

. 양식 유형이 POST 여야하며 GET 로그인이 실패합니다. – Adrian

+0

-d를 사용하면 POST가 암시 적입니다. –

+0

흠, -X POST가 없으면 로그인에 실패합니다. – Adrian