在 Calendar Office 365 中创建新事件时出现错误请求 400

Bad request 400 upon creation of new event in calendar office 365

我的回复是 "Bad request"。尝试在 Office 365 中创建新活动时出现错误 400 api。 这是我的代码。

System.out.println(" TESTING write to calendar");
        CommercialVO commercial = commercialService.getByCode("MBA");
        CalendrierItemVO evenement = new CalendrierItemVO();
        evenement.setDescription("TEST ");
        creerEvenement(evenement, commercial, sessionUser);
public boolean creerEvenement(CalendrierItemVO evenement) {
        HttpPost        httpPost;
        HttpResponse    httpResponse;
        StringEntity    httpEntity;

        if (evenement == null) {
            throw new IllegalArgumentException("The 'evenement' argument shan't be null.");
        } else if (evenement.getDateDebut() == null) {
            throw new IllegalArgumentException("The 'evenement' argument shall have a starting date.");
        } else if (evenement.getDateFin() == null) {
            throw new IllegalArgumentException("The 'evenement' argument shall have an ending date.");
        }


        System.out.println("Creating event desciprion: " + evenement.getDescription() + " titre:" +evenement.getTitre() + " uid:" + evenement.getUid() + " date creation: " + evenement.getDateCreation() + " date debut:"  + evenement.getDateDebut());
        this.organisationService.ensureFreshToken();
System.out.println(" Creatingf evenement for office365"  +gson.toJson(evenement, CalendrierItemVO.class));
        try {
            System.out.println(" Office365 events:" + this.organisationConfiguration.getOffice365CalendarEndpoint() + "/calendars/" + this.configuration.getIdCalendrier() + "/events");
            httpPost = new HttpPost(this.organisationConfiguration.getOffice365CalendarEndpoint() + "/calendars/" + this.configuration.getIdCalendrier() + "/events");


            httpEntity = new StringEntity("{'Subject': 'Discuss the Calendar REST API','Body': {'ContentType': 'HTML','Content': 'I think it will meet our requirements!'},'Start': '2015-02-20T05:21:04Z','End': '2015-02-20T05:21:04Z','Location': { 'DisplayName':'ConferenceRoom 1' },'ShowAs': 'Busy','Attendees': [{ 'EmailAddress': { 'Name': 'Alex Darrow', 'Address': 'alex11d@contoso.com' },'Type': 'Required' },{ 'EmailAddress': { 'Name': 'Anne Wallace', 'Address': 'annew@contoso.com'}, 'Type': 'Optional'},{'EmailAddress': { 'Name': 'Conference Room 1', 'Address': 'conf1@contoso.com' },'Type': 'Resource' }]}", "UTF-8");


            httpPost.setEntity(httpEntity);
            System.out.println(" Office365 events test1 ");

            httpPost.addHeader("authorization", "BEARER " + this.organisationConfiguration.getOffice365AccessToken());
            httpResponse = this.httpClient.execute(httpPost);
            System.out.println(" Office365 events test2 " + httpResponse.getStatusLine().getReasonPhrase() + " "+ httpResponse.getStatusLine().getStatusCode());
            httpResponse.getEntity().getContent().close();
            if (httpResponse.getStatusLine().getStatusCode() == 201) {
                System.out.println(" Office365 eventsstatus 201 ");
                return true;
            }
        } catch (IOException e) {
            System.out.println(" Exetpion 1:  " + e.getMessage());
            e.printStackTrace();
        } catch (UnsupportedCharsetException e) {
            System.out.println(" Exetpion 2:  " + e.getMessage());
            e.printStackTrace();
        }

        return false;
    }

转储

Creating event desciprion: TEST JRA ? TU VOIS ? titre:TEST uid:null date creation: null date debut:java.util.GregorianCalendar[time=1424410735062,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Muscat",offset=14400000,dstSavings=0,useDaylight=false,transitions=3,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2015,MONTH=1,WEEK_OF_YEAR=8,WEEK_OF_MONTH=3,DAY_OF_MONTH=20,DAY_OF_YEAR=51,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=38,SECOND=55,MILLISECOND=62,ZONE_OFFSET=14400000,DST_OFFSET=0]
 Creatingf evenement for office365{"IsAllDay":false,"Subject":"TEST","Start":"2015-02-20T05:38:55Z","End":"2015-02-20T06:38:55Z","Body":{"ContentType":"HTML","Content":"TEST JRA ? TU VOIS ?"}}
 Office365 events:https://outlook.office365.com/api/v1.0/me/calendars/Calendarid/events
 Office365 events test1 
 Office365 events test2 Bad Request 400

我哪里出错了,我应该如何解决这个错误的请求问题?

尝试将您的 Content-Type 设置为 "application/json"