当前位置: 代码迷 >> J2EE >> HttpClient发送POST请求,SpringMVC接收的有关问题
  详细解决方案

HttpClient发送POST请求,SpringMVC接收的有关问题

热度:10   发布时间:2016-04-17 23:42:48.0
HttpClient发送POST请求,SpringMVC接收的问题。
发送代码:

public static void main(String[] args) throws Exception {
        HttpClient client = new DefaultHttpClient();
        String path = "http://localhost:8080/TestAnnotationConfig/b";
        HttpPost post = new HttpPost(path);
        Vendor v = new Vendor();
        v.setName("传输数据");
        v.setDescription("数据传输");
        v.setCreateDate(new Date());
        v.setId(20);
        String content = JSONBinder.binder(Vendor.class).toJSON(v);
        StringEntity entity = new StringEntity(content);
        entity.setContentEncoding("UTF-8");
        entity.setContentType("application/json");
        post.setEntity(entity);
        HttpResponse response = client.execute(post);
        System.out.println("响应状态码:" + response.getStatusLine().getStatusCode());
        InputStream is = response.getEntity().getContent();
        String text = StreamUtil.readInputStream(is);
        System.out.println("服务器端响应的数据:" + text);
    }


服务器端接收的代码:

@RequestMapping(value = "/b", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public String b(@RequestBody Vendor v) {
        System.out.println("客户端发送的数据:" + v);
        return "success";
    }


执行代码报错415。请问怎么回事?
Jackson的HttpMessageConverter我已经配置了,从服务器端返回数据测试已通过,现在就是朝服务器端发送json,报错415。

大神求解,叩谢。
------解决思路----------------------

// 设置HTTP POST请求参数必须用NameValuePair对象
Gson g = new Gson();
List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
                               //Map键是param,  值是实体
params.add(new BasicNameValuePair("param", g.toJson(entity)));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8);
// 设置HTTP POST请求参数
httpPost.setEntity(entity);
  相关解决方案