试图在android应用程序开发中使用httpurlrequest,但无法访问Safari浏览器中清晰可访问的数据文件
开发Android应用程序并在模拟器中进行测试。该过程的一部分是按如下方式查找数据文件-- 如果httpurlrequest的URL为,请从logcat获取: 此对象可能位于“https://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod" 如果httpurlrequest的URL为get: 301永久移动文档已移动到“http://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/“该输出也来自logcat: “ActivityThread:未能找到com.google.android.apps.wellbeering.api的提供商信息” 奇怪的是,当我在Safari浏览器中使用http或https协议时,上面的URL会显示数据文件。我假设密钥是上面列出的消息“未能找到提供程序信息”,但是httpurlrequest应该适用于http协议。我已将以下内容添加到我的清单中:试图在android应用程序开发中使用httpurlrequest,但无法访问Safari浏览器中清晰可访问的数据文件,android,networking,emulation,Android,Networking,Emulation,开发Android应用程序并在模拟器中进行测试。该过程的一部分是按如下方式查找数据文件-- 如果httpurlrequest的URL为,请从logcat获取: 此对象可能位于“https://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod" 如果httpurlrequest的URL为get: 301永久移动文档已移动到“http://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/“该输出也来自logcat: “Activity
<application
android:usesCleartextTraffic="true"
意思是说“我的Mac上的Safari浏览器”。所以浏览器遵循重定向,而你看不见的代码没有。是的-这是正确的。抱歉没有添加代码-以下是我正在使用的:请查看我的新编辑,在原始问题中,前缀为“new”。会用的。一个注释,但不允许使用足够的字符。如果可以的话,这是一个问题——如果我使用物理设备而不是模拟器,例如通过HttpUrlConnection拉取数据,这是否更有可能成功?(尽管我希望在购买Android手机进行真正测试之前,能在模拟器上证明这一概念)。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
InputStream in = null;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
//Your code goes here
InputStream in = null;
HttpURLConnection urlConnection2 = null;
URL url = null;
// url = new URL("http://www.android.com/");
url= new URL("https://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod");
// url = new URL("https://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.20210608/12/atmos/gfs.t12z.pgrb2full.0p50.f021");
urlConnection2 = (HttpURLConnection) url.openConnection();
in = urlConnection2.getInputStream(); //error
BufferedReader reader;
reader = new BufferedReader(new InputStreamReader(in));
StringBuilder result = new StringBuilder();
String line = null;
while (true) {
try {
if (!((line = reader.readLine()) != null)) break;
} catch (IOException e) {
e.printStackTrace();
}
result.append(line);
}
System.out.println("SFK - this what we get from URL -- " + result.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();