android HTTP POST失败

时间:2013-01-28 11:36:32

标签: java android java-ee

我正在尝试连接并发布到一个简单的java webservice,从chrome运行post的URL成功,但android代码跳过以下行(没有抛出错误),但webservice不接受帖子

            HttpPost post = new HttpPost(setFacebookEventsAddress+userId+"/"+accesstoken);  
            post.setHeader("Accept", "application/json");
            post.setHeader("Content-type", "application/json");
            HttpResponse response = client.execute(post);

处理上述请求的webservice方法签名:

    @GET
    @Path("setData/{user_id}/{accessToken}")
    @Produces(MediaType.APPLICATION_JSON+ ";charset=utf-8")
    public String setData(@PathParam("user_id")  String user_id,
                                @PathParam("accessToken")  String accessToken) {

因为我设法发布我的浏览器,任何人都可以帮助解决我的Android代码有什么问题?

2 个答案:

答案 0 :(得分:2)

        URL url = new URL(setFacebookEventsAddress+userId+"/"+accesstoken);
        HttpURLConnection con = (HttpURLConnection) url
                    .openConnection();
        ja = readStream(con.getInputStream());

使用HttpURLConnection而不是HttpPost为我做了诀窍,感谢所有助手!

答案 1 :(得分:1)

不可能有任何确定性(鉴于证据),但我的猜测是表达

setFacebookEventsAddress + userId + "/" + accesstoken 

正在评估与您在网络浏览器中使用的网址不同的网址。

我建议你尝试以下方法:

  • 打开服务器上的请求记录,并比较发送请求中的网址。

  • 修改您的客户端以打印响应状态代码和响应正文。后者很可能是一个错误页面,可以为您提供更多线索。


另一个可能的问题是您的代码似乎没有发送任何带有POST请求的正文。


重新审视此问题时,问题是您正在使用/尝试对已配置为仅支持GET的Web服务执行POST操作。我希望如果您查看状态代码,您会发现响应代码为“Method not supported”。