用cxf rest写服务,andriod端调用post方法总出错

hensiyuanfen 2015-06-29 06:42:26
刚开始用cxf写服务端,andriod端调用post的时候出现这样的错误,
Encoding: GBK
Http-Method: POST
Content-Type: text/xml
Headers: {connection=[Keep-Alive], Content-Length=[12], content-type=[text/xml], host=[192.168.0.136:8080], user-agent=[Apache-HttpClient/UNAVAILABLE (java 1.4)]}
Payload: asdasdasdasd
六月 29, 2015 6:37:17 下午 org.apache.cxf.jaxrs.utils.JAXRSUtils findTargetMethod
警告: No operation matching request path "/hyt06/ivo/list/auction" is found, Relative Path: /auction, HTTP Method: POST, ContentType: text/xml, Accept: */*,. Please enable FINE/TRACE log level for more details.
六月 29, 2015 6:37:17 下午 org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper toResponse
警告: WebApplicationException has been caught : no cause is available
六月 29, 2015 6:37:17 下午 org.apache.cxf.interceptor.LoggingOutInterceptor
信息: Outbound Message
---------------------------
ID: 7
Response-Code: 415
Content-Type: text/xml
Headers: {Date=[Mon, 29 Jun 2015 10:37:17 GMT], Content-Length=[0]}


现在标出我服务端的代码和客户端的代码
服务端代码接口
	@POST
@Path("/auction")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public String postanction(String str);

实现接口类
@Override
public String postanction(String str) {
String sssString = "abc";
return sssString;
}

安卓端代码
String URL = "xxxxxxxxxx";
HttpPost httpPost = new HttpPost(URL);
httpPost.setHeader(HTTP.CONTENT_TYPE, "text/xml");
try {
List params2 = new ArrayList<String>();
params2.add("ssssss");
StringEntity entity = new StringEntity("asdasdasdasd", HTTP.UTF_8);
httpPost.setEntity(entity);
HttpResponse httpResponse = new DefaultHttpClient()
.execute(httpPost);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
result = EntityUtils.toString(httpResponse.getEntity());
}
} catch (Exception e) {
e.printStackTrace();
}

就这么多点分了,好急
...全文
322 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hensiyuanfen 2015-07-01
  • 打赏
  • 举报
回复
我自己解决了,把返回类型换成response ,即可,安卓端没cxf 的jar包,和MediaType这种类型也有冲突
qq_24551503 2015-06-30
  • 打赏
  • 举报
回复
好像是@Produces(MediaType.TEXT_PLAIN)服务端这个类型设置的不正确吧
hensiyuanfen 2015-06-30
  • 打赏
  • 举报
回复
引用 4 楼 li352558693 的回复:
params2有使用吗?
应该没有使用,是开始测的时候用的, StringEntity entity = new StringEntity("asdasdasdasd", HTTP.UTF_8);再控制台可以看到,数据返回的时候不知道改怎么处理,用@get我是返回string没错,@post不知道改如何返回
Hare_ 2015-06-30
  • 打赏
  • 举报
回复
415 – 不支持的媒体类型
雪月弦歌 2015-06-30
  • 打赏
  • 举报
回复
params2有使用吗?
hensiyuanfen 2015-06-30
  • 打赏
  • 举报
回复
引用 2 楼 li352558693 的回复:
楼主,编码方式
这个虽然编码方式不同,但好像并不影响,我用@get时编码也不影响。@post应该是方法错误
雪月弦歌 2015-06-30
  • 打赏
  • 举报
回复
楼主,编码方式
hensiyuanfen 2015-06-29
  • 打赏
  • 举报
回复
用@GET 都是可以正常的,但是用到post 报错,并传不了值

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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