Android 网络服务调用抛出 org.apache.http.NoHttpResponseException

Android web service call throws org.apache.http.NoHttpResponseException

我做了什么:

我尝试使用以下代码从我的 android 应用中通过 "POST" 方法调用 Web 服务。

       HttpClient httpclient = new DefaultHttpClient();
       HttpPost httppost = new HttpPost("http://myserver.com:5060/convert/service");
       try {
           File file = new File(inputPath);
           httppost.setHeader("Content-Type", "application/msword");
           httppost.setHeader("Accept", "application/pdf");
           httppost.setEntity(new ByteArrayEntity(readFile(file)));

           // Execute HTTP Post Request
           HttpResponse response = httpclient.execute(httppost);

       } catch (Exception e) {
           e.printStackTrace();
       }

当我执行此 api 调用时,出现以下异常。

"org.apache.http.NoHttpResponseException: The target server failed to respond"

但是当我使用 same 从 standalone java 项目 调用 same web service 时代码,我得到正确的响应

没有收到上述任何错误。

我想要什么:

根据我的 java 网络服务调用,我知道服务和源代码都没有问题.那么可能是什么问题?我怎样才能摆脱这个问题?

我已经解决了这个问题。

问题是因为 端口号 5060。我确实通过在 eclipse 中使用 TCP/IP monitor 工具找到了这个。

默认情况下 5060 端口 不会从 android 调用(我不知道原因)。因为请求没有命中服务器。

所以我在我的服务器中将 端口号更改为 8090 并重新启动了服务器。

然后我调用了 android 的服务。现在效果很好。