Java开发Microsoft Graph API报错Java.lang.IllegalArgumentException: Illegal character(s) in message head

问题背景:使用Java开发Microsoft Graph API项目,需要通过已经拿到的Token使用http调用Graph API获取指定用户邮箱内的所有邮件文件夹。

出现下面的报错信息

Java.lang.IllegalArgumentException: Illegal character(s) in message header value

Java.lang.IllegalArgumentException: Illegal character(s) in message header value: eyJ0eXAiOiJKV1QiLCJub25jZSI6Il90cFVxMHU0cmRMWXVqSHd3TTJBUTZtUTFic2o5UXFCYnZ2NmhmbHNwZTAiLCJhbGciOiJSUzI1NiIsIng1dCI6ImpTMVhvMU9XRGpfNTJ2YndHTmd2UU8yVnpNYyIsImtpZCI6ImpTMVhvMU9XRGpfNTJ2YndHTmd2UU8yVnpNYyJ9.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC85ZDMxNDI5Ny03NWRjLTQzMjktOGY5NC1hNjY0ODliNGI5YmIvIiwiaWF0IjoxNjUyMTkyNDkwLCJuYmYiOjE2NTIxOTI0OTAsImV4cCI6MTY1MjE5NjM5MCwiYWlvIjoiRTJaZ1lPRE1kWDVqWDJSODUyZlcxZElONWd2NkFBPT0iLC

代码片段:

public static boolean TestToken(RestTemplate restTemplate) {
		String url = "https://graph.microsoft.com/v1.0/users/指定邮箱地址/mailfolders/inbox/childfolders";
        String token = "eyJ0eXAiOiJKV1QiLCJub25jZSI6Il90cFVxMHU0cmRMWXVqSHd3TTJBUTZtUTFic2o5UXFCYnZ2NmhmbHNwZTAiLCJhbGciOiJSUzI1NiIsIng1dCI6ImpTMVhvMU9XRGpfNTJ2YndHTmd2UU8yVnpNYyIsImtpZCI6ImpTMVhvMU9XRGpfNTJ2YndHTmd2UU8yVnpNYyJ9.eyJhdWQiO"
		try {
			HttpHeaders headers = new HttpHeaders();
			headers.add("Authorization", token);
			headers.add("Content-Type", "application/json");
			HttpEntity<String> formEntity = new HttpEntity<String>(headers);
			ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, formEntity,
					String.class);
			System.out.println(responseEntity.getBody());
			return true;
		} catch (Exception e) {
			System.err.println(e.toString());
			return false;
		}
	}
	

解决办法:Token字符串中可能存在换行符,替换掉换行就行了。

token = token.replaceAll("\n",""); // 替换掉换行就行了

Graph API介绍:

要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。https://docs.microsoft.com/zh-cn/graph/api/user-list-mailfolders?view=graph-rest-1.0&tabs=http
        权限                            权限类型     权限(从最低特权到最高特权)
        委派(工作或学校帐户)         Mail.ReadBasic、Mail.Read、Mail.ReadWrite
        委派(个人 Microsoft 帐户)     Mail.ReadBasic、Mail.Read、Mail.ReadWrite
        应用程序                         Mail.ReadBasic.All、Mail.Read、Mail.ReadWrite

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值