我正在使用Apache实现SOA集成层。
但是,当我试图向外部web服务发送帖子请求时,我遇到了一些问题。
这是我的骆驼路线:
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] => webmaster@localhost
[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
。
拜托,有什么问题。
发布于 2016-12-04 19:00:42
您的路由是连接到一个基于HTTPv3.x客户端库的较旧的http组件。建议使用http4 4://。作为终点。
然后在示例中使用预定义的常量:
from("direct:start")
.setHeader(Exchange.HTTP_METHOD,constant(org.apache.camel.component.http4.HttpMethods.POST))
.to("http4://www.google.com")
https://stackoverflow.com/questions/40964528
复制相似问题