大佬教程收集整理的这篇文章主要介绍了即使在 RestTemplate 的基本身份验证标头中发送正确的凭据后,也会出现 401 未经授权的错误,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是正在触发的包装器 API 代码:-
logger.info("InsIDe Method");
String integrationUrl=null;
String integrationUsername = null;
String integrationpassword = null;
if(StringUtils.isnotBlank(System.getenv("PushGDSDataUrl")))
integrationUrl = System.getenv("PushGDSDataUrl");
else
integrationUrl = "@R_944_10107@s://test.connect.boomi.com/ws/simple/createCommentsx-test";
if(StringUtils.isnotBlank(System.getenv("PushGDSDataUrlUsername")))
integrationUsername = System.getenv("PushGDSDataUrlUsername");
else
integrationUsername = "<integration-username>";
if(StringUtils.isnotBlank(System.getenv("PushGDSDataUrlPwd")))
integrationpassword = System.getenv("PushGDSDataUrlPwd");
else
integrationpassword = "<integration-password>";
RestTemplate restTemplate = new RestTemplate();
@R_944_10107@headers headers = new @R_944_10107@headers();
headers.setContentType(MediaType.APPliCATION_JsON);
// headers.set("dcuID",integrationUserName);
//headers.set("dcpwd",integrationpassword);
// headers.set("Content-Type","application/Json");
String auth = integrationUsername + ":" + integrationpassword;
byte[] encodedAuth = Base64.encodeBase64(
auth.getBytes(Charset.forname("US-ASCII")) );
String authheader = "Basic " + new String( encodedAuth );
headers.set( "Authorization",authheader );
// headers.set("Body","{\r\n\"class_name\":\"Server\",\r\n\"company_name:\"ABC\"\r\n}\r\n");
GDSPushData newObj = new GDSPushData();
newObj.setClass_name(className);
newObj.setCompany_name(companyName);
String Jsoninstring = new Gson().toJson(newObj);
JsONObject mJsONObject = new JsONObject(Jsoninstring);
logger.info("request is set");
@R_944_10107@entity<String> entityReq = new @R_944_10107@entity<String>(mJsONObject.toString(),headers);
logger.info("request is converted");
URI targetUrl = UriComponentsBuilder.fromUriString(integrationUrl).build().encode().toUri(); //Build base url
logger.info("target Url"+targetUrl);
ResponseEntity<String> result = restTemplate.exchange(integrationUrl,@R_944_10107@method.POST,entityReq,String.class);
//String result = restTemplate.getForObject(targetUrl,String.class);
logger.info(result.getStatusCodeValue());
logger.info(result.getbody());
当我们在指定相同凭据后使用邮递员触发上述代码中提到的 intergation url 时,它工作正常,我们得到 200 OK 响应代码,当从 Spring Java 应用程序触发相同代码时,我们得到 401未经授权的错误。
请尝试使用以下代码
@R_944_10107@Client client = @R_944_10107@ClientBuilder.create().build();
@R_944_10107@Post post = new @R_944_10107@Post("<Your_URL>");
List<NameValuePair> arguments = new ArrayList<>();
arguments.add(new BasicNameValuePair("class_name",className));
arguments.add(new BasicNameValuePair("company_name",companyName));
try{
String auth = integrationUsername + ":" + integrationpassword;
byte[] encodedAuth = Base64.encodeBase64(
auth.getBytes(Charset.forName("US-ASCII")) );
String authHeader = "Basic " + new String( encodedAuth );
post.setHeader(@R_944_10107@Headers.CONTENT_TYPE,"application/json");
post.setHeader(@R_944_10107@Headers.ACCEPT,"application/json");
post.setHeader(@R_944_10107@Headers.AUTHORIZATION,authHeader);
post.setEntity(new UrlEncodedFormEntity(arguments));
@R_944_10107@Response response = client.execute(post);
以上是大佬教程为你收集整理的即使在 RestTemplate 的基本身份验证标头中发送正确的凭据后,也会出现 401 未经授权的错误全部内容,希望文章能够帮你解决即使在 RestTemplate 的基本身份验证标头中发送正确的凭据后,也会出现 401 未经授权的错误所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。