Mail 365 rest api从java发送消息错误

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

我正在尝试使用java httpClient v4.4发送消息 我以你提供的信息为例

我经常会犯这样的错误: {“error”:{“code”:“ErrorInvalidRequest”,“message”:“无法读取请求正文。”}

这是我的密码

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" +
            "}";