Mail 365 rest api从java发送消息错误
我正在尝试使用java httpClient v4.4发送消息 我以你提供的信息为例 我经常会犯这样的错误: {“error”:{“code”:“ErrorInvalidRequest”,“message”:“无法读取请求正文。”} 这是我的密码Mail 365 rest api从java发送消息错误,java,rest,office365,Java,Rest,Office365,我正在尝试使用java httpClient v4.4发送消息 我以你提供的信息为例 我经常会犯这样的错误: {“error”:{“code”:“ErrorInvalidRequest”,“message”:“无法读取请求正文。”} 这是我的密码 String message = "{\"Message\":{\"Subject\":\"Meet for lunch?\",\"Body\":{\"ContentType\":\"Text\",\"Content\":\"The new cafet
String message = "{\"Message\":{\"Subject\":\"Meet for lunch?\",\"Body\":{\"ContentType\":\"Text\",\"Content\":\"The new cafeteria is open.\"},\"ToRecipients\":[{\"EmailAddress\":{\"Address\":\"my@mailadress.com\"}}],\"SaveToSentItems\":\"true\"}}";
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost("https://outlook.office365.com/api/v1.0/me/sendmail");
post.setHeader("authorization" ,"Bearer "+accessToken);
post.setHeader("Accept", "application/json");
post.setHeader("contnet-type", "application/json");
post.setEntity(stringEntity);
CloseableHttpResponse response = httpclient.execute(post);
InputStream in=null;
BufferedReader buffer=null;
String microsoftResponse = "";
//System.out.println(response.toString());
in= response.getEntity().getContent();
buffer = new BufferedReader(new InputStreamReader(in));
String s = "";
while ((s = buffer.readLine()) != null) {
microsoftResponse += s;
}
System.out.println(microsoftResponse);
}
catch(Exception e)
{
e.printStackTrace();
}
我做错了什么??有人能推荐点什么吗???URL是
https://outlook.office365.com/api/v1.0/me/sendmail
是正确的。头文件和Http方法
但是有效负载的格式错误(元素的嵌套出现了问题)-这就是为什么服务响应时无法读取请求正文。
正确的消息负载是
{
"Message": {
"Body": {
"Content": "The new cafeteria is open.",
"ContentType": "Text"
},
"Subject": "Meet for lunch?",
"ToRecipients": [
{
"EmailAddress": {
"Address": "my@mailadress.com"
}
}
]
},
"SaveToSentItems": "true"
}
或准备在Java代码中使用(正确转义):
我强烈建议您使用库将POJO转换为其JSONrepresentation。查看或检查JSON是否有错误;内容类型标题拼写错误;并检查RESTURL(消息id路径参数丢失),我更正了标题。问题仍然存在。我需要一个信息id来发送电子邮件吗?非常感谢!!!它工作!!!在使用Gson或Jackson之前,我想发送一些简单的信息。你的逃跑救了我一命。再次非常感谢你!!!
String message = "{\n" +
"\"Message\": {\n" +
" \"Body\": {\n" +
" \"Content\": \"The new cafeteria is open.\",\n" +
" \"ContentType\": \"Text\"\n" +
" },\n" +
" \"Subject\": \"Meet for lunch?\",\n" +
" \"ToRecipients\": [\n" +
" {\n" +
" \"EmailAddress\": {\n" +
" \"Address\": \"my@mailadress.com\"\n" +
" }\n" +
" }\n" +
" ]\n" +
" },\n" +
" \"SaveToSentItems\": \"true\"\n" +
"}";