1

我为 WCF SOAP Web 服务制作了一个 Android 客户端。Web 服务托管在 IIS 服务器上。我可以通过 HTTP 使用ksoap2-android 毫无问题地进行调用,但是当我尝试使用 HTTPS 以更安全的方式执行调用时,它不起作用。我从服务器得到的响应是HTTP/1.1 405 Method Not Allowed. 标题属性之一是allow=[GET, HEAD, OPTIONS, TRACE],所以我想问题是POST由于某种原因不允许这样做。

我尝试使用GET代替来执行呼叫,但这似乎也不起作用。这真的很奇怪,但是当我查看连接时,它说方法是GET,但是当我查看连接的错误流时,它说方法是POST

请注意,我可以毫无问题地连接到浏览器中的 Web 服务,并且服务证书是受信任的证书。我无法在 WCF 测试客户端中测试服务,所以我不确定问题出在我的客户端还是服务器或服务中。

我真的不知道从这里去哪里。我不太确定POST不被允许是这里的真正问题。在我看来,还有其他问题,但我不知道那会是什么。

4

2 回答 2

0

我相信您的问题出在 ksoap2 androd 库的版本中

相关的 SO 问题

所以你的问题可能是其中之一:

  • 旧的 ksoap2 库(早于 2.5.2)
  • 服务器上不受信任的 SSL 证书(回答如何修复它在这里:KSOAP 2 Android with HTTPS
于 2011-10-05T10:48:01.250 回答
0

我发现问题是我调用了目录(默认文档?)而不是 .svc 文件。当我用 .svc 文件的路径完成地址时,我设法解决了这个问题。现在我得到404 Not Found了,但这是另一个问题。

基本上,我http://mydomain.com/service/在我真的应该打电话的时候打电话http://mydomain.com/service/service.svc

于 2011-10-05T11:31:54.853 回答