2016-12-04 11 views
1

私はApacheの統合レイヤーを実装するためにApache camelを使用しています。camelルートでPOSTリクエストを送信

しかし、私は外部WebサービスにPOSTリクエストを送信しようとしているときにいくつかの問題があります。

これは私のラクダのルートです:

from("jetty:http://localhost:5000/plus_grand") 
    .setHeader(Exchange.HTTP_METHOD , constant("POST")) 
    .to("http://localhost/sub?bridgeEndpoint=false&throwExceptionOnFailure=false") 

http://localhost/subは、単純なPHPのページです。このページは要求情報を印刷します。

コードは次のとおりです。

echo "<pre>"; 
    print_r($_SERVER); 
echo "</pre>"; 

私はそれを実行しようとしていたとき、私はこの結果を得る:

Array 
(
    [HTTP_HOST] => localhost 
    [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0 
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.5 
    [HTTP_ACCEPT_ENCODING] => gzip, deflate 
    [HTTP_COOKIE] => csrftoken=rqcFAHftMkWsDEoLudTWIjPseAU7sJ40; oauth_consumer_key=136a3fd63028e1d157c6b939bcbe771c2dfe5710 
    [HTTP_CONNECTION] => keep-alive 
    [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
    [SERVER_SIGNATURE] => 
Apache/2.4.7 (Ubuntu) Server at localhost Port 80 


    [SERVER_SOFTWARE] => Apache/2.4.7 (Ubuntu) 
    [SERVER_NAME] => localhost 
    [SERVER_ADDR] => 127.0.0.1 
    [SERVER_PORT] => 80 
    [REMOTE_ADDR] => 127.0.0.1 
    [DOCUMENT_ROOT] => /var/www/html 
    [REQUEST_SCHEME] => http 
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => /var/www/html 
    [SERVER_ADMIN] => [email protected] 
    [SCRIPT_FILENAME] => /var/www/html/sub/index.php 
    [REMOTE_PORT] => 38604 
    [GATEWAY_INTERFACE] => CGI/1.1 
    [SERVER_PROTOCOL] => HTTP/1.1 
    [REQUEST_METHOD] => GET 
    [QUERY_STRING] => 
    [REQUEST_URI] => /sub/ 
    [SCRIPT_NAME] => /sub/index.php 
    [PHP_SELF] => /sub/index.php 
    [REQUEST_TIME_FLOAT] => 1480887502.957 
    [REQUEST_TIME] => 1480887502 
) 

あなたが見ることができ、リクエストメソッドがGETです。

問題は何ですか。

答えて

1

あなたのルートは、http v3.xクライアントライブラリに基づいて、古いhttpコンポーネントに配線しています。 http4:// ..をエンドポイントとして使用することをお勧めします。

from("direct:start") 
.setHeader(Exchange.HTTP_METHOD,constant(org.apache.camel.component.http4.HttpMethods.POST)) 
    .to("http4://www.google.com") 

はREF:http://camel.apache.org/http4.html

次に例につき事前定義された定数を使用

関連する問題