Как установить тип содержимого multipart / related в составном / смешанном запросе с помощью Apache HttpClient - PullRequest
0 голосов
/ 08 марта 2019

Я хочу отправить multipart / mixed запрос, используя Apache HttpClient и тело запроса, как показано ниже, но мой код не добавляет Content-Type: multipart / related ; border = penFL6sBQHJJUN3HA4ftqC часть тела запроса.

 --f0Ve5iPP2ySppIcDSR6Bak   
**Content-Type: multipart/related;boundary=penFL6sBQHJJUN3HA4ftqC**       
--penFL6sBQHJJUN3HA4ftqC

Content-Type: application/vnd.siemens.mindsphere.meta+json

{    
    "type": "item",   
    "version": "1.0",   
    "payload": {    
        "type": "standardTimeSeries",   
        "version": "1.0",    
        "details": {  
            "configurationId": "1551207800470"   
        }  
    }    
}


--penFL6sBQHJJUN3HA4ftqC   
Content-Type: application/json    

[    
    {    
        "timestamp": "2019-03-01T10:00:03.780Z",    
        "values": [    
            {    
                "dataPointId": "1551207763818",    
                "value": "10",    
                "qualityCode": "0"    
            }    
        ]    
    }   
]

--penFL6sBQHJJUN3HA4ftqC--    
--f0Ve5iPP2ySppIcDSR6Bak--    
/r/n

Итак, мой код выглядит следующим образом,

        HttpEntity entity = MultipartEntityBuilder.create()
              .setMimeSubtype("mixed")
              .addPart(FormBodyPartBuilder.create()
                .setName("configuration")
                .setBody(new StringBody(part1, ContentType.create("application/vnd.siemens.mindsphere.meta+json")))
                .build())
              .addPart(FormBodyPartBuilder.create()
                .setName("datapoints")
                .setBody(new StringBody(part2, ContentType.APPLICATION_JSON))
                .build())
              .build();     

            HttpPost post = new HttpPost("https://endpointurl");
            post.addHeader("Authorization","Bearer AuthKey goes here");
            post.setEntity(entity);         
            HttpResponse response = httpClient.execute(post);

Но это не устанавливает Content-Type: multipart / related в теле запроса, как я показал выше. (Пожалуйста, смотрите самый верхний Content-Type тела запроса) если я установлю это так,

  HttpEntity entity2 = MultipartEntityBuilder.create()
              .setMimeSubtype("mixed")
              .setContentType(ContentType.create("multipart/related"))

...

Удаляет multipart / mixed в заголовке запроса и помещает вместо него multipart / related. Мое требование - отправить многочастный / смешанный запрос с многочастным / связанным контентом в теле, как я показал выше. Как это сделать в Apache HttpClient?

...