2011-08-27 8 views
1

본문에 게시하고 있지 않으며 키/값 쌍이 PHP에서 컬 포스트를 할 때 어디에서나 보지 않습니다.expressjs POST 헤더 매개 변수?

업데이트 : 사용

http_build_query 컬 게시물 ($ 매개 변수)가 다음 req.body에서 가능하게되었다 같은 일을하지만, 그것은 단지시나가, 재생, 및 기타 웹 API 프레임 워크 모두를 처리하는 것이 이상한 것 같다 동일한 배열을 게시 (http_build_query 메서드가없는 경우)하고 표현은 자식의 의붓 자녀처럼 보입니다. 오른쪽에 누구입니까?

app.js

이 구성을 가지고

app.use(express.bodyParser()); 
app.use(express.methodOverride()); 

호 :

app.post('/call/:genericUrlParam', function(req, res){ 

    // where is 'key'/'value' pair?! 
    console.log('headers: ' + JSON.stringify(req.headers)); 
    console.log('body: ' + JSON.stringify(req.body)); 

}); 

것처럼 PHP 본다 :

 $parameters = array (
      'key' => 'value' 
     ); 


     $curl_handle = curl_init(); 
     curl_setopt($curl_handle, CURLOPT_URL, "localhost/call/myparam"); 
     curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 50); 
     curl_setopt($curl_handle, CURLOPT_USERPWD, "username:password"); 
     curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, FALSE); 
     curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); 


     curl_setopt($curl_handle, CURLOPT_POST, 1); 
     curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $parameters); 

     $buffer = curl_exec($curl_handle); 
     $error = curl_error($curl_handle); 
     curl_close($curl_handle); 

     if (empty($buffer)) { 
      return "Error: ".$error; 
     } else { 
      return $buffer; 
     } 

답변

1

bodyParser는 POST 요청 파라미터로부터 Request.body을 채우는 경우에만 헤더 요청의 Content-type은 값이 application/x-www-form-urlencoded입니다. 요청에 paramers 나 다른 내용 유형이 없으면 Request.body 객체는 정의되지 않습니다.