gpt4 book ai didi

java - 从 Android 访问工作中的 HTTPService 时遇到问题

转载 作者:行者123 更新时间:2023-11-29 06:01:46 26 4
gpt4 key购买 nike

我有一个可用的 .Net WCF HTTP 服务。如果我将 URL 放入 I.E、FireFox 或谷歌 Chrome 浏览器中,我会返回正确的流。但是,当我尝试在 android 应用程序(在 Eclipse 中运行)中访问相同的服务时,我收到了一个 socketException,其中包含详细消息“权限被拒绝”。该服务在我机器上的 Visual Studio 网络托管程序中运行,客户端也在我机器上的 android 模拟器中运行。

获取异常的行是:InputStream in = new BufferedInputStream(urlConnection.getInputStream());

(我之前有一篇关于同一个程序的帖子,其中 url 是 www.android.com 并且我得到“无效的 url”)

可能有人知道为什么浏览器没有问题而 android 客户端却被拒绝许可?谢谢,加里

        HttpURLConnection urlConnection = null;

try
{
URL url = new URL("http://localhost:8080/TeamTask/Tasks");
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
readStream(in);
}
catch (MalformedURLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}

最佳答案

权限被拒绝很可能是因为您的 AndroidManifest.xml 文件中没有权限。

另外,我还没有测试过,但我想一开始使用“localhost”是行不通的,因为它在模拟器上运行,就像使用 localhost 的 VM 机器指向 VM,而不是主机——输入你机器的IP地址。我目前正在同一网络上从另一台机器测试一些 Android HTTP 调用,我只是输入服务器的本地 IP。

编辑:

最后,这里是一些我经常使用的用于进行简单 HTTP 调用的经过验证的真实代码:

public String getURLcontents(URL url) throws IOException{
String response = "failed";
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
Log.v(TAG, "Opening connection: " + url.toString());
try {
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
response = new Scanner(in).useDelimiter("\\A").next();
}
catch (Exception e) {
urlConnection.disconnect();
return response = "failed";
}
finally {
urlConnection.disconnect();
Log.v(TAG, "Closed connection");
}
return response;
}

关于java - 从 Android 访问工作中的 HTTPService 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com