2010-04-21 2 views
1

libcurl을 사용하여 웹 서버에 파일을 보내야합니다. 나는 컬 웹 사이트에서 예제 중 하나를 보았고이를 구현하려고합니다. 예 : postit2.c입니다. 누군가가 이것을 확장하여 사용자 이름과 암호를 보낼 수있는 방법을 말해 줄 수 있습니까?libcurl에서 양식 보내기

답변

1

curl_formadd을 사용하면 POST 데이터에 필드를 더 추가 할 수 있습니다.

해당 샘플에 코드를 추가하려면 양식이 설치되는 섹션의 주석 바로 위의 부분에 : /* Fill in the submit field too, even if this is rarely needed */을 입력하십시오.

이 같은 것입니다 추가 할 코드 :

Username: <input type="text" name="user" /> <br /> 
Password: <input type="password" name="pass" /> 
:

curl_formadd(&formpost, 
      &lastptr, 
      CURLFORM_COPYNAME, "user", //the name of the data to send 
      CURLFORM_COPYCONTENTS, "username", //the users username 
      CURLFORM_END); 

curl_formadd(&formpost, 
      &lastptr, 
      CURLFORM_COPYNAME, "pass", //the name of the data to send 
      CURLFORM_COPYCONTENTS, "mypass", //the users password 
      CURLFORM_END); 

HTML 양식은 다음과 같이 보일 것입니다 (올바른 암호에 입력 한 사용자를 가정) 같은 데이터를 제출

+0

보낼 양식을 html로 표시하는 방법을 알려주시겠습니까 ?? 내가 wireshark를 사용하여 이것을 테스트하려고했지만 HTML 코드 자체를 볼 수 없었습니다. – sfactor

+0

@sfactor 완료. POST 요청에서 HTML 코드가 전송되지 않으면 양식에 입력 된 값이 '? user = username & pass = mypass'와 같은 키/값 문자열로 변환됩니다. – Yacoby

+0

제출 한 내용이 내 부분에서 성공적인지 어떻게 알 수 있습니까? ? – sfactor

0

예를 들어 'res = curl_easy_perform (curl);'을보십시오. postit2.c ... 'printf ("CurlCode : % d", res);'를 추가 할 수 있습니다. 결과가 0이면 제출이 성공했음을 의미합니다.

관련 문제