Клиентский клиент Spring Rest Post Service Бросок: org.springframework.web.client.HttpClientErrorException: 400 Плохой запрос

Детали услуги:

End point Url: Some url
Request Body: {"userIds":["someID123456789"]}
Header: application/json

SpringConfig.xml

<bean id = "rumbaDeleteUserClient"  class = "com.app.services.UserServiceImpl">       
        <property name = "deleteUserTemplate" ref = "deleteUserTemplate"/>
     </bean>

     <bean id = "deleteUserTemplate" class = "org.springframework.web.client.RestTemplate">
        <property name = "messageConverters">
            <list>
                <ref bean = "jsonConverter"/>
                <ref bean = "stringConverter"/>
                <ref bean = "encodedType"/>
                <ref bean = "marshallingConverter"/>
            </list>
        </property>
        <property name = "requestFactory" ref = "deleteUserRequestFactory"></property>
    </bean>

    <bean id = "deleteUserRequestFactory" class= "org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
        <property name = "readTimeout" value = "${connection.read.timeout}" />
        <property name = "connectTimeout" value = "${connection.timeout}" />
    </bean> 

    <bean id = "jsonConverter"
        class = "org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name = "supportedMediaTypes" value = "application/json"/>
    </bean>

    <bean id = "stringConverter"
        class = "org.springframework.http.converter.StringHttpMessageConverter">
        <property name = "supportedMediaTypes" value = "*"/>
    </bean>

    <bean id = "marshallingConverter"
        class = "org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
        <constructor-arg ref = "ulcServiceMarshaller"/>
        <constructor-arg ref = "olcServiceMarshaller"/>
        <property name = "supportedMediaTypes" value = "application/xml" />
    </bean>

    <bean id = "encodedType"
        class = "org.springframework.http.converter.FormHttpMessageConverter">
        <property name = "supportedMediaTypes" value = "*"/>
    </bean>
<bean id = "ulcServiceMarshaller" class = "org.springframework.oxm.jaxb.Jaxb2Marshaller">
      <property name = "contextPath" value = "com.pearson.psn.rumba.model" />
    </bean>

    <bean id = "olcServiceMarshaller" class = "org.springframework.oxm.jaxb.Jaxb2Marshaller">
      <property name = "contextPath" value = "com.pearson.psn.rumba.org.model" />
    </bean>

UserServiceImpl.java

    private RestTemplate deleteUserTemplate;
    public void setDeleteUserTemplate(RestTemplate deleteUserTemplate) {
            this.deleteUserTemplate = deleteUserTemplate;
        }

    public void method1() {
    String uri = "some end point url";
    HttpComponentsClientHttpRequestFactory factroy = (HttpComponentsClientHttpRequestFactory) deleteUserTemplate
                        .getRequestFactory();
                deleteUserTemplate.setRequestFactory(factroy);

    String[] userArray = new String[1];
                userArray[0] = "someID123456789";
    // create request body
                JSONObject request = new JSONObject();
                request.put("userIds", userArray);

    // body
                HttpEntity<String> requestEntity = new HttpEntity<String>(request.toString());

    ResponseEntity<String> response = deleteUserTemplate.postForEntity(uri,
                        requestEntity, String.class);

}

Поскольку это служба типа POST, я также пробовал использовать postForObject и метод обмена, он не работает. Я предполагаю, что способ передачи тела запроса неверен. Итак, как передать тело запроса, если оно похоже на {"userIds": ["someID123456789"]}

Кто-нибудь может высказать свои мысли. Заранее спасибо.

при использовании внешнего инструмента, такого как почтальон, вы можете получить 200 в порядке?

shahaf 08.04.2018 15:30

Да, он работает над Rest Client, когда я делаю это из браузера. Я могу получить 200 ОК. Он не работает, когда я звоню с Java. то есть клиент-клиент, который я написал, не работает.

Baba Fakruddin 09.04.2018 07:34
1
2
39
0

Другие вопросы по теме