在SpringREST中使用JSON的HTTP POST

在SpringREST中使用JSON的HTTP POST,spring,web-services,rest,spring-mvc,spring-rest,Spring,Web Services,Rest,Spring Mvc,Spring Rest,我想使用SpringRESTTemplate制作一个简单的HTTPPOST。 Wesb服务在参数中接受JSON,例如:{“name”:“mame”,“email”:email@gmail.com“} 使用Curl调用webservice时,我得到了正确的结果: curl -X POST -H "Authorization: Basic xxxxxxxxxx" --header "Content-Type: application/json" --header "Accept: applicat

我想使用SpringRESTTemplate制作一个简单的HTTPPOST。 Wesb服务在参数中接受JSON,例如:
{“name”:“mame”,“email”:email@gmail.com“}

使用Curl调用webservice时,我得到了正确的结果:

 curl -X POST -H "Authorization: Basic xxxxxxxxxx" --header "Content-Type: application/json" --header "Accept: application/json" -d "{   \"name\": \"name\",   \"email\": \"email@gmail.com\" } " "url"

尝试从代码中删除
model
,正如我在curl请求中看到的那样,您没有使用model属性,并且一切正常。试试这个:

 public static void main(String[] args) {

    final String uri = "url";
    RestTemplate restTemplate = new RestTemplate();
    // Add the Jackson message converter
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
    // create request body
    String input = "{\"name\":\"name\",\"email\":\"email@gmail.com\"}";


    // set headers
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.set("Authorization", "Basic " + "xxxxxxxxxxxx");
    HttpEntity<String> entity = new HttpEntity<String>(input, headers);

    // send request and parse result
    ResponseEntity<String> response = restTemplate
            .exchange(uri, HttpMethod.POST, entity, String.class);

    System.out.println(response);
}
publicstaticvoidmain(字符串[]args){
最后一个字符串uri=“url”;
RestTemplate RestTemplate=新RestTemplate();
//添加Jackson消息转换器
restemplate.getMessageConverters().add(新映射Jackson2HttpMessageConverter());
//创建请求主体
字符串输入=“{\”名称\“:\”名称\“,\”电子邮件\“:\”email@gmail.com\"}";
//设置标题
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set(“授权”、“基本”+“XXXXXXXXXX”);
HttpEntity=新的HttpEntity(输入,标题);
//发送请求并解析结果
ResponseEntity响应=restTemplate
.exchange(uri,HttpMethod.POST,entity,String.class);
System.out.println(响应);
}

添加您试图访问的webservice代码以及正确执行的postman或curl表达式的屏幕截图……我无法访问webservice。通过使用curl,我可以使用以下命令调用ws:curl-X POST-H“Authorization:Basic xxxxxxxxx”--header“Content Type:application/json”--header“Accept:application/json”-d“{\“name\”:\“name\”,“email\”:\”email@gmail.com\“}”“url”消息转换器能否将Java对象转换为json字符串?假设输入是User类型的ojbect。用户=新用户(“名称”email@gmail.com");
 curl -X POST -H "Authorization: Basic xxxxxxxxxx" --header "Content-Type: application/json" --header "Accept: application/json" -d "{   \"name\": \"name\",   \"email\": \"email@gmail.com\" } " "url"
 public static void main(String[] args) {

    final String uri = "url";
    RestTemplate restTemplate = new RestTemplate();
    // Add the Jackson message converter
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
    // create request body
    String input = "{\"name\":\"name\",\"email\":\"email@gmail.com\"}";


    // set headers
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.set("Authorization", "Basic " + "xxxxxxxxxxxx");
    HttpEntity<String> entity = new HttpEntity<String>(input, headers);

    // send request and parse result
    ResponseEntity<String> response = restTemplate
            .exchange(uri, HttpMethod.POST, entity, String.class);

    System.out.println(response);
}