Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过传入参数并返回json来正确设置POST-spring rest模板?_Java_Json_Spring_Rest_Spring Mvc - Fatal编程技术网

Java 如何通过传入参数并返回json来正确设置POST-spring rest模板?

Java 如何通过传入参数并返回json来正确设置POST-spring rest模板?,java,json,spring,rest,spring-mvc,Java,Json,Spring,Rest,Spring Mvc,我对spring有点陌生,在spring中使用spring模板调用rest服务时遇到了一些问题 我不知道如何正确地将数据传递到rest模板,以及如何获取json数据。目前,我收到415个unsupport media type错误 因此RestservicesURL.signupurl=“abc.com/signup 参数将是=“name=john”电子邮件=john@doe.com?password=john”(由spring的@RequestParam映射获取) 我需要得到的响应是一个JSO

我对spring有点陌生,在spring中使用spring模板调用rest服务时遇到了一些问题 我不知道如何正确地将数据传递到rest模板,以及如何获取json数据。目前,我收到415个unsupport media type错误

因此RestservicesURL.signupurl=“abc.com/signup
参数将是=“name=john”电子邮件=john@doe.com?password=john”(由spring的@RequestParam映射获取)
我需要得到的响应是一个JSON对象,我不知道如何做到这一点

public void signUp(Map<String, String> param) {
    try {
        callService(RestServicesUrl.SIGNUP_URL, param);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
公共无效注册(映射参数){
试一试{
callService(RestServicesUrl.SIGNUP_URL,参数);
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
下面是rest模板调用

public static void callService(String url, Map<String, String> data) throws Exception {
    List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
    acceptableMediaTypes.add(MediaType.ALL);

    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(acceptableMediaTypes);
    HttpEntity<String> entity = new HttpEntity<String>(headers); 


    RestTemplate rest = new RestTemplate();

    rest.postForObject(url, entity, byte[].class);              

}
publicstaticvoidcallservice(字符串url,映射数据)引发异常{
List acceptableMediaTypes=new ArrayList();
acceptableMediaTypes.add(MediaType.ALL);
HttpHeaders=新的HttpHeaders();
headers.setAccept(acceptableMediaTypes);
HttpEntity=新的HttpEntity(标题);
RestTemplate rest=新建RestTemplate();
postForObject(url,实体,字节[].class);
}

您是否正在尝试发布和接收JSON

根据您的“数据”变量,看起来您可能正在尝试发送JSON。我看到您在可接受的媒体类型上设置了“全部”,如果您正在发布JSON并希望收到它,您应该将可接受的媒体类型和内容类型标题设置为“application/JSON”“我相信春天对这些都有恒量。这可能是415不支持的mediatype错误的原因

关于创建JSON,您应该强烈考虑一个序列化框架,以便将java对象转换为JSON,反之亦然——杰克逊是一个非常流行的选项,并紧密结合Spring的功能,请参阅以下细节:


如果这不是一个选项,那么您将需要找到一种方法,用一个简单的代码将您的数据对象转换为适当的HTTP请求

我正在尝试发布一个带有参数的url,并接收json返回。这可能会有所帮助:但是,研究Jackson仍然是一个好主意。