【问题标题】:Target host must not be null, or set in parameters目标主机不能为空,或在参数中设置
【发布时间】:2012-01-06 14:11:44
【问题描述】:

我收到此错误“目标主机不得为空,或在参数中设置”。我的清单文件设置了 Internet 权限,并且我在 Url 之前放置了“http://”。它仍然给出同样的错误。我的网址没有“www”。附在上面。

我的部分代码:

HttpPost post = new HttpPost("http://infocreation.something_something1.xml");

我的部分清单如下:

<uses-permission android:name="android.permission.INTERNET/>

我现在该怎么办?

【问题讨论】:

  • 只是要明确一点:没有“.xml”TLD 这样的东西,所以您上面的 example-URI 选择不当,或者您正在尝试做一些奇怪的事情。如果你的真实代码也有.xml,那么你的问题是:没有这样的东西可以发送HTTP请求。
  • 感谢您的回复。使用不带下划线的 URL 对我有用。 .xml 部分没问题。
  • 顺便说一句,我收到此错误是因为我忘记添加 http://。我写的是 www.something.com,但它必须是 something.com

标签: android android-manifest http-post


【解决方案1】:

应该是

HttpPost post = new HttpPost("http://www.infocreation.something.xml");

【讨论】:

  • 网址不是 www.infocreation.something.xml。它是infocreation.something.xml。没有www。将 www 放入 Url 时出现“主机名可能不为空”错误
  • 我刚刚尝试访问您的网站,它不存在。你想做什么?
  • 没有.com?我尝试导航到您的站点,它说找不到服务器。你确定你这样做正确吗?
  • 我放在那里的网址不是实际的网址。我正在尝试通过 post 向该 Url 发送数据。
  • 哦!好吧,拥有真正的网址会有所帮助。
【解决方案2】:

所以我用几乎相同的 URL 替换了 URL,除了没有下划线并且有效。我从进一步的搜索中意识到(例如here) 带有_(下划线)的网址无效,尽管该特定网址可能有效。感谢您的所有帮助。

【讨论】:

    【解决方案3】:

    您是否在 HttpPost 构造函数中放置了一个真实有效的 url?

    无论如何这是你的解决方案:

    如果您有以下代码失败:

    HttpGet httpget = new HttpGet("www.host.com");
    

    那么这个错误很容易解决: 问题是你还没有给URL添加协议,所以改成:

    HttpGet httpget = new HttpGet("http://www.host.com");
    

    然后它会按需要工作。

    来源:h3x.no

    【讨论】:

    • 谢谢南妮。我没有在问题中输入真实的 URL。真实的 URL 没有 www。附在它上面。我使用的是 POST,而不是 GET。谢谢。
    • 您的错误不是指 HttpGet 或 HttpPost,它是一般性的。错误是因为您没有输入www 或者您的网址格式错误。
    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多