2014-06-19 2 views
2

http 게시 본문에 데이터를 보내려고합니다. 다음 코드는 POST를 작성하지만 http 버전 및 URL 필드 외에 본문 또는 기타 필드로 데이터를 가져 오는 방법을 알아낼 수 없습니다. 나는 보았고 그물에있는 다른 출처와는 다른 것을 시도하지 않았다. 궁극적으로이 스크립트는 bash 스크립트 내에 있습니다. CURL 또는 WGET을 사용할 수 없습니다.netcat으로 http POST 보내기

printf "POST /postresearch HTTP/5.0\r\n\r\nTHIS IS THE BODY" |nc -n -i 1 10.0.1.11 3000 
+0

왜 적절한 HTTP 도구를 사용할 수 없습니까? – josh3736

+0

linux/우분투/fedora/centos의 기본 설치를 사용하여 작동해야합니다. 그들은 기본적으로 netcat하지만 http 툴은 없다. –

답변

2

당신은 올바른 프로토콜 버전 번호를 사용하여 포함 valid HTTP request, 그리고 아마도 content typePOSTentity length 제공 요청 및 위해를 확인해야합니다.

POST /postresearch HTTP/1.0 
Content-Length: 25 
Content-Type: application/x-www-form-urlencoded 

field=value&field2=value2 

나는 (이 당신이 그들을 제출하면 브라우저가 양식을 전송하는 방법이다)는 HTTP 1.0 요청, 몸이 25 바이트하도록 지정하고, 내가 URL 인코딩 형식 매개 변수를 보낸다 지정을 실행합니다.


현재로서는하지 마십시오. 자신의 HTTP 클라이언트를 구현해야하는 상황은 전혀 없습니다. 적절한 HTTP 도구 또는 라이브러리를 사용하십시오.

+0

이것은 내가 거기에 넣을 수있는 것을보기 위해 프로토콜 넘버를 가지고 돌아 다니면서 여전히 게시되도록했습니다. 5.0과 실제로 작동합니다. 다른 필드를 연결하여 추가하는 방법을 살펴보고 어떻게 작동하는지 살펴 보겠습니다. –

관련 문제