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

thisisgpy 2014-09-09 08:49:23
发送代码:

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。

大神求解,叩谢。
...全文
31260 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xujielaixi 2014-12-01
  • 打赏
  • 举报
回复
解决了吗 怎么解决的
2.wa 2014-09-10
  • 打赏
  • 举报
回复
String content = JSONBinder.binder(Vendor.class).toJSON(v); 不要转 string 直接发对象
优美兴 2014-09-10
  • 打赏
  • 举报
回复

	// 设置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);
  • 打赏
  • 举报
回复
代码看起来没什么问题,什么版本的springmvc?
「已注销」 2014-09-10
  • 打赏
  • 举报
回复
引用 1 楼 u011278496 的回复:
String content = JSONBinder.binder(Vendor.class).toJSON(v); 不要转 string 直接发对象
StringEntity只能接受字符串参数啊,对象怎么直接发送呢?

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧