Поместите запрос с контентом с помощью HttpClient и HttpMethod - PullRequest
0 голосов
/ 08 мая 2019

Я использую HttpClient и HttpMethod для запуска моих REST-сервисов, но если я хочу дать методу put некоторый контент, он не работает.Служба запущена на веб-сервере, но ее содержимое равно нулю.

public boolean putter(String url, String entity) {
        httpClient = new HttpClient();
        Credentials defaultcreds = new UsernamePasswordCredentials("user", "pw");
        httpClient.getState().setProxyCredentials(AuthScope.ANY, defaultcreds);
        uri = "http://localhost:59189/v1/";
        HttpMethod method = new PutMethod(uri + url);
        try {
            HttpPut putRequest = new HttpPut(uri + url);
            putRequest.setHeader("Content-Type", "application/json");

            if (entity != null) {
                StringEntity ent = new StringEntity(entity);
                if (entityContentType != null) {
                    ent.setContentType(entityContentType.toString());
                }
                putRequest.setEntity(ent);
            }
            httpClient.executeMethod(method);

            if (method.getStatusCode() == HttpStatus.SC_OK) {
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            method.releaseConnection();
        }

        return false;
    }

1 Ответ

0 голосов
/ 08 мая 2019

Так я делаю не только сообщение с json в теле, но и отвечаю на запрос с измененным телом

HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity<String> request = new HttpEntity<String>(json.toString(), headers);
    RestTemplate restTemplate = new RestTemplate();
    ResponseEntity<String> responsee =null;
    try{
        responsee = restTemplate.postForEntity( "http://localhost:59189/v1/", request , String.class );
    }catch (HttpClientErrorException e){
        return ResponseEntity.status(401)
                .body("usuario não encontrado");
    }

используемые библиотеки

import org.springframework.http. ;
import org.springframework.web.bind.annotation.
;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletResponse;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...