Java 将Android应用程序连接到restful Web服务

Java 将Android应用程序连接到restful Web服务,java,android,web-services,rest,tomcat,Java,Android,Web Services,Rest,Tomcat,我知道这个问题已经被问了很多次了,但是我找不到一个正确的答案,希望你们中的一个能帮我解决;-) 我正在尝试通过智能手机设备上的android应用程序与rest Web服务通信(因此没有模拟器)。 Web服务在windows计算机上的192.168.0.2:8080上运行。 该设备与电脑连接在同一wlan网络中。 当我用设备的chrome浏览器打开链接时,Web服务会正常响应 以下是我用于在异步任务中连接到Web服务的代码: protected Integer doInBackground

我知道这个问题已经被问了很多次了,但是我找不到一个正确的答案,希望你们中的一个能帮我解决;-)

我正在尝试通过智能手机设备上的android应用程序与rest Web服务通信(因此没有模拟器)。 Web服务在windows计算机上的
192.168.0.2:8080
上运行。 该设备与电脑连接在同一wlan网络中。 当我用设备的chrome浏览器打开链接时,Web服务会正常响应

以下是我用于在异步任务中连接到Web服务的代码:

    protected Integer doInBackground(String... params)
    {
        try
        {
            AndroidHttpClient client = AndroidHttpClient.newInstance("androidClient", getContext());
            HttpPost post = new HttpPost(params[0]);
            String xml = new ScoreDto(new Random(System.currentTimeMillis()).nextLong()).toXml();
            post.setEntity(new StringEntity(xml));
            return client.execute(post).getStatusLine().getStatusCode();
        }
        catch (Exception e)
        {
            Log.e(TAG, e.getLocalizedMessage());
            return 0;
        }
    }
  • 我在尝试连接时使用了几种不同的方法,总是导致连接超时
  • 我在我的应用程序中包含了互联网权限
  • 我暂时停用了windows pc上的本地防火墙
  • 我尝试了设备的端口转发
  • 我尝试在app
    httpbin.org/ip
    中调用不同的Web服务,并得到了有效的响应
有什么想法吗?问题似乎与本地网络相连。。 如果我想通过android设备连接到外部服务器,是否需要特殊限制或权限?
提前感谢;-)

感谢所有发表评论试图提供帮助的人。
我发现了问题所在:
post请求缺少
内容类型
标题

一个功能完备的
doBackground
-实现如下所示:

protected Integer doInBackground(String... params)
{
    try
    {
        //TODO check if params.length >=2 & not empty
        AndroidHttpClient client = AndroidHttpClient.newInstance("androidClient", getContext());
        HttpPost post = new HttpPost(params[0]);
        post.setHeader("content-type", "application/xml");
        post.setEntity(new StringEntity(params[1]));
        return client.execute(post).getStatusLine().getStatusCode();
    }
    catch (Exception e)
    {
        Log.e(TAG, e.getLocalizedMessage());
        return 0;
    }
}

定义
无法连接
如果您正在浏览器中“打开链接”,则这是一个GET请求。在您的代码中,您正在使用
HttpPost
。只是出于好奇,但是您在代码中定义了服务器IP吗?@njzk2无法连接:连接没有被拒绝,但服务器没有respond@amol我也尝试了get请求,但服务器也没有响应。在restful Web服务中,post/get URL是相同的。