android - 如何从 Android 或 iOS 模拟器访问本地 DynamoDB 实例?
问题描述
大家早上好。
我目前正在使用 Xamarin.Forms 开发跨平台应用程序,并且对于我的第一个测试,我使用的是 DynamoDB 的本地实例而不是 AWS 在线实例(因为害怕被收费)。
但是,我找不到从我的模拟器(Android 和 iOS)访问该实例的方法。
我正在运行本地 dynamoDB 实例,如下所示
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -port 8000 -sharedDb
我还从 AWS 下载并成功启动了示例项目,其中创建了一个名为“Movies”的表,然后填充了数千行:所有 CRUD 操作都已执行,一切正常。
从这里开始,我开发我的应用程序如下:我首先在端口 8000 处检查 dynamoDB 的实例:
using (var tcpClient = new TcpClient()) {
var result = tcp_client.BeginConnect("10.0.2.2", 8000, null, null);
localFound = result.AsyncWaitHandle.WaitOne(3000); // Wait 3 seconds
tcpClient.EndConnect(result);
}
验证后,我创建了一个客户端:
var ddbConfig = new AmazonDynamoDBConfig {
ServiceURL = "http://10.0.2.2:8000",
};
var credentials = new BasicAWSCredentials("mvAwsAccessKeyId", "mvAwsSecretAccessKey");
var client = new AmazonDynamoDBClient(credentials, ddbConfig);
最后,我使用该客户端连接到数据库中的表:
try {
ListTablesResponse tblResponse = await client.ListTablesAsync();
}
但是,应用程序会无限期地停止在最后一条指令上,就好像 IP 地址不正确一样。
我遵循了关于如何设置模拟器网络以查找地址 10.0.2.2的Android 文档,并且我还使用在我的 PC 上运行的基本 python http 服务器验证了该应用程序实际上与该 IP 地址通信,所以我真的可以不要指出为什么这不起作用。
希望有人已经发现并解决了
这个
问题
解决方案
推荐阅读
- docker - 来自守护进程的错误响应:oci 运行时错误:container_linux.go
- performance - Redis 备份影响读取性能
- reactjs - 反应 setState 改变状态中的不同对象
- tinymce - 在插入/编辑链接对话框上插入自定义按钮?
- sql - 使用 ecto 预加载所有链接的记录
- google-maps - 如何使用(React Native,Geolocation)实时更新经纬度
- android - VideoView 无法播放视频
- excel - 如何使用 VBA for Excel for MacOS 创建文本文件
- java - 春季启动 RESTapi
- php - 我已经使用 laravel 护照创建了 API 身份验证。当授权令牌出错时,它会向我发送一个错误“Route [login] not defined”