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

时间:2015-01-07 11:38:06

标签: java android web-services exception http-post

我做了什么:

我尝试使用以下代码通过我的Android应用中的" POST" 方法调用网络服务。

       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:目标服务器未能   响应"

但是,当我使用相同代码独立Java项目进行相同的网络服务调用时,我得到正确响应即可。

没有像上面那样出现任何错误。

我想要什么:

根据我的 java网络服务电话,我知道服务中没有问题,也有源代码。那么问题可能是什么?我该怎样摆脱这个问题?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

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

通过defaule 5060端口未从Android调用(我不知道原因)。因为请求没有命中服务器。

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

然后我从android调用了该服务。现在它工作得很好。