如何在ApacheCamel中使用基本身份验证进行RESTful调用?

如何在ApacheCamel中使用基本身份验证进行RESTful调用?,rest,authentication,https,apache-camel,Rest,Authentication,Https,Apache Camel,我有一个apache camel应用程序,需要将日志文件发送到端点,这需要基本的身份验证。我能够将authMethod、authusername和authPassword传递到camel文档中指定的url,但我面临的挑战是,在启动应用程序后,我一直从端点获得空响应。 但是,相同的端点使用postman返回响应代码和响应正文 下面是我的代码: from("{{routes.feeds.working.directory}}?idempotent=true") .pr

我有一个apache camel应用程序,需要将日志文件发送到端点,这需要基本的身份验证。我能够将authMethod、authusername和authPassword传递到camel文档中指定的url,但我面临的挑战是,在启动应用程序后,我一直从端点获得空响应。 但是,相同的端点使用postman返回响应代码和响应正文

下面是我的代码:

from("{{routes.feeds.working.directory}}?idempotent=true")
                .process(new Processor() {
            @Override
            public void process(Exchange exchange) throws Exception {
                    MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
                    multipartEntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
                    String fileName = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
                    File file = exchange.getIn().getBody(File.class);
                    multipartEntityBuilder.addPart("file",
                            new FileBody(file, ContentType.MULTIPART_FORM_DATA, fileName));
                    exchange.getOut().setBody(multipartEntityBuilder.build());
                    Message out = exchange.getOut();
                    int responseCode = out.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class);
                    log.info("response code "+responseCode);

            }
        })
                .setHeader(Exchange.HTTP_QUERY, 
            constant("authMethod=Basic&authUsername="+username+"&authPassword="+password+""))
                .to(TARGET_WITH_AUTH +"/"+uuid+"/files")
                .log(LoggingLevel.DEBUG, "response code >>>>"+Exchange.HTTP_RESPONSE_CODE)
                .log(LoggingLevel.INFO, "RESPONSE BODY ${body}")
                .end();

请帮助查看并进一步建议

对于HTTP基本身份验证,我在发送请求之前使用它

<setHeader headerName="Authorization">
    <constant>Basic cm9vdDpyb290</constant>
</setHeader>

基本cm9vdDpyb290

cm9vdDpyb290-Encoded Base64 root:root(用户名和密码)字符串

这是通过使用httpClient发送带有基本身份验证的请求而修复的。显然,apachecamel中的
authMethod
没有将凭证与Post请求一起发送,这就是为什么我得到最初的401响应代码。
感谢你们的贡献。

HTTP响应代码是什么?@Rajkumar现在我得到了401个“未经授权”响应代码。虽然我使用postmanI获得了200个响应代码,但我尝试使用编码凭据设置授权标头,它返回了响应代码400。我最近尝试的是向密码添加原始语法,因为密码包含特殊字符。在发送普通密码400后,我仍然得到了401。错误代码表示,凭证有效,但有效负载有问题。