bucketname.s3.amazonaws.com的java.net.UnknownHostException

bucketname.s3.amazonaws.com的java.net.UnknownHostException,java,android,amazon-web-services,amazon-s3,Java,Android,Amazon Web Services,Amazon S3,我正在使用以下代码下载一个s3。此代码来自我的Android应用程序 public void downloadFile(String baseDir, String imageName) throws IOException { this.s3Client = new AmazonS3Client(new BasicAWSCredentials(accessKey,secretKey)); String s3key = baseDir + "/" + imageName ;

我正在使用以下代码下载一个s3。此代码来自我的Android应用程序

public void downloadFile(String baseDir, String imageName) throws IOException {
    this.s3Client = new AmazonS3Client(new BasicAWSCredentials(accessKey,secretKey));

    String s3key = baseDir + "/" + imageName ;

    Log.d(tag, "downloading S3 file with key = " + s3key);

    S3ObjectInputStream content = null;
    try {
        content = s3Client.getObject(bucketName,s3key).getObjectContent();
    } catch(RuntimeException ex) {
        Log.e(tag, "error while downloding S3 file with key = " + s3key ,ex);
        throw new IOException(ex);
    }
当我执行此代码时,会出现以下异常:

02-28 00:48:53.589: D/s3dao(4078): downloading S3 file with key = level1/2_3.jpg
02-28 00:48:54.800: I/AmazonHttpClient(4078): Unable to execute HTTP request: fourpicstest.s3.amazonaws.com
02-28 00:48:54.800: I/AmazonHttpClient(4078): java.net.UnknownHostException: fourpicstest.s3.amazonaws.com
02-28 00:48:54.800: I/AmazonHttpClient(4078): at java.net.InetAddress.lookupHostByName(InetAddress.java:512)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:300)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at java.net.InetAddress.getAllByName(InetAddress.java:259)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:278)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:162)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:377)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:228)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3215)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:1038)
02-28 00:48:54.800: I/AmazonHttpClient(4078): at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:920)
然而,当我启动url:fourpicstest.s3.amazonaws.com时,我得到了“拒绝访问异常”


bucket fourpicstest确实存在。

自己解决了它:清单文件中缺少internet权限

将以下内容添加到清单文件解决了该问题

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


您试过这个吗@凯瑟,你可以成为一个好的SO编辑器,自己修复它,然后提醒OP,好的格式和语法很重要:)@Melquiades,我做到了。不过我不明白这是怎么回事。这不完全是我的责任。@nikis那篇文章是写给桌面的。我的代码是写给android的phone@KEYSER1.你为什么要删除你的第一条评论?2.您在编辑中没有修复代码缩进,您在3上调用了OP。我想说,不知何故,我们有责任让用户保持问题的整洁、格式良好等,并在这方面教育其他人。这只是我的意见,当然,你可以随心所欲。