2015-04-28 36 views
0

我想从Android Studio中的应用程序请求AWS DynamoDB的一些条目。我得到一个scanResult CRC32不匹配。有谁知道为什么会发生这种情况。在下面附加代码片段和堆栈跟踪。AWS crc32不匹配发电机

credentials = new CognitoCachingCredentialsProvider(
      MapValidate.getContext(), // Context 
      “FILLED_MY_ID_HERE", // Identity Pool ID 
      Regions.US_EAST_1 // Region 
    ); 

AmazonDynamoDBClient dynamoDB = new AmazonDynamoDBClient(credentials); 
Region usEast1 = Region.getRegion(Regions.US_EAST_1); 
dynamoDB.setRegion(usEast1); 

HashMap<String,Condition> scanFilter = new HashMap<String,Condition>(); 

Condition condition1lat = new Condition() 
      .withComparisonOperator(ComparisonOperator.EQ.toString()) 
      .withAttributeValueList(new AttributeValue().withS(user_lat)); 
scanFilter.put("DegLat", condition1lat); 

ScanRequest scanRequest = new ScanRequest() 
      .withTableName("MY_TABLE_NAME") 
      .withAttributesToGet("DegLat","DegLong","Latitude") 
      .withScanFilter(scanFilter); 

ScanResult result = dynamoDB.scan(scanRequest); 

我得到如下以下异常:

04-28 19:34:03.729 4744-4793/com.google.sample I/AmazonHttpClient﹕ 
Unable to execute HTTP request: 
Client calculated crc32 checksum didn't match that calculated by server side 
+0

嘿,在我更新到Android 7.0牛轧糖时,我刚刚遇到了同样的错误。我正在使用最新版本的aws-dynamodb-sdk-2.3.0。我只是在运行Android 7.0的设备上遇到此错误。有谁知道这是否是aws sdk中的错误,或者我可以做些什么来解决这个问题? – jerbotron

回答

1

CRC校验错误可能被请求头请求压迫所致。 如果您还没有这样做,请尝试用ClientConfiguration如下:

ClientConfiguration clientConfig = new ClientConfiguration(); 
clientConfig.withGzip(ClientConfiguration.DEFAULT_USE_GZIP /*false*/); 
0

Android的SDK居然不支持ClientConfiguration.DEFAULT_USE_GIP ......它试图想,如果你看一下,以考虑到这一点HttpRequestFactory类https://github.com/aws/aws-sdk-android/blob/4de3a3146d66d9ab5684eb5e71d5a2cef9f4dec9/aws-android-sdk-core/src/main/java/com/amazonaws/http/HttpRequestFactory.java如果您没有明确设置Accept-Encoding,则默认情况下,sdk将关闭压缩。但是,如果你明确地设置了它,你可能会遇到压缩问题。

让我知道如果这不能解决您的问题。

感谢, 韦斯顿

+0

感谢您的回复。上述片段的哪一部分我必须启用压缩?我无法在我的SDK中找到httprequestfactory.java文件。此外,查询适用于表的子集,但不适用于整个表 –

+0

我的歉意是,我所引用的类确实已更新,以修复2.1.1中的此错误。感谢您的帮助,但很感谢! – WestonE

1

更新:我刚刚解决了问题。这是sdk-2.2.0的一个问题。升级到前几天发布的最新版本2.2.1解决了这个问题。