【问题标题】:Android - MalformedURLException on HTTP requestAndroid - HTTP 请求出现 MalformedURLException
【发布时间】:2012-03-05 18:58:43
【问题描述】:

我在编程方面还算不错,所以这对我来说有点奇怪......

我正在尝试从 Mantis Bug Tracker 中提取一个值以显示在我的 Android 应用程序上。为此,我使用 kSOAP2 库访问 Mantis 的 SOAP 接口。

我得到的错误是带有这些详细信息的 MalformedURLException

未找到协议:/api/soap/mantisconnect.php

URL 是根据用户输入的 URI 构建的,并在末尾附加一个字符串:

String fullUrl = HOST + "/api/soap/mantisconnect.php/mc_version?wsdl"; 
trans.call(fullUrl, soapEnvelope);

HOST传入成功,我通过调试变量看到了这个,fullUrl相当于:

http://192.168.1.98/mantis/api/soap/mantisconnect.php/mc_version?wsdl

这是从 Eclipse 中 HOST 变量的调试视图中复制出来的。

程序出错的地方是 trans.call();其中 trans 是 kSOAP2 库中提供的 HTTPTransportSE 对象。 trans 中定义的 URL 是(奇怪?):

/api/soap/mantisconnect.php

所以对我来说,这个问题似乎在于 HttpTransportSE 对象中的解析问题,可以找到源代码here扩展 transport.java(我无法放置链接,因为它认为我是垃圾邮件,但你可以找到它在那个 SVN 中)。

通常到现在为止,我已经发现了问题并且永远不必点击提交按钮,但我遇到了真正的问题 =(。欢迎所有帮助和必要的!

【问题讨论】:

  • 你的解决方案是什么?"

标签: android http ksoap2 malformedurlexception


【解决方案1】:

您是否尝试过不使用 HOST 变量而只对 URL 进行硬编码?

【讨论】:

  • 刚刚尝试过,很好的想法,但不幸的是它没有解决问题=\
  • 抱歉,问题已解决,您认为 URL 设置不正确是正确的。在调用 trans.call(x,y); 之前您使用我在运行时没有执行此操作的 URL 设置 HTTPTransportSE 对象,因此没有输入!
  • 能否获取堆栈跟踪信息?
  • 太大,无法发布,但我会扔掉任何你需要的东西here。可能最好浏览源代码。
  • 解决问题就可以了。您需要编辑堆栈跟踪的原始帖子。请确保您接受这个对您有帮助的答案。
猜你喜欢
  • 1970-01-01
  • 2011-03-31
  • 2023-02-06
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
相关资源
最近更新 更多