我通过代理连接移动设备和系统,并捕获移动设备中的呼叫。
当捕获“https”请求时,我无法从中获得响应。 在系统中出现以下错误: -
List<TableItem> tableItems = new List<TableItem>();
ListView listView;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.HomeScreen);
listView = FindViewById<ListView>(Resource.Id.List);
EditText _filterText = FindViewById<EditText>(Resource.Id.editInp);
tableItems.Add(new TableItem() { Heading = "Vegetables", SubHeading = "65 items" });
tableItems.Add(new TableItem() { Heading = "Fruits", SubHeading = "17 items" });
_filterText.TextChanged += (object sender, Android.Text.TextChangedEventArgs e) => {
// filter on text changed
var searchTerm = _filterText.Text;
var updatedTableItems = tableItems.Where(
// TODO Fill in your search, for example:
tableItem => tableItem.Heading.ToLower().Contains(searchTerm.ToLower()) ||
tableItem.SubHeading.ToLower().Contains(searchTerm.ToLower())
).ToList();
var filteredResultsAdapter = new HomeScreenAdapter(this, updatedTableItems);
listView.Adapter = filteredResultsAdapter;
};
listView.Adapter = new HomeScreenAdapter(this, tableItems);
listView.ItemClick += OnListItemClick;
}
protected void OnListItemClick(object sender, Android.Widget.AdapterView.ItemClickEventArgs e)
{
var selectedTableItem = e.Parent.GetItemAtPosition(e.Position);
}
}
}
public class TableItem
{
public string Heading { get; set; }
public string SubHeading { get; set; }
}
注意:我在系统上安装了charles proxy ceritificate,并在Mozilla Firefox中导入了证书。我能够从系统
上的Mozilla浏览器获得“https”的响应我已经在手机上加载了charlesproxy.com/getssl。它说“您的设备上已经安装了证书”
答案 0 :(得分:3)
当您从charlesproxy.com/getssl下载证书时,您的移动设备是否通过您尝试设置的Charlesproxy实例连接?
更新版本的Charlesproxy创建自定义证书,因此只有在安装证书时设备被代理时,SSL代理设置才有效。如果不是,您可能希望将其删除并在通过Charles连接时再次安装。
我还想在安装证书后重启charles并重新启动移动设备。也许它是迷信的,但我曾经遇到SSL调用仅在重启后才能工作的情况。
答案 1 :(得分:0)
在设备上安装ssl证书只会对浏览器的ssl日志有所帮助,以跟踪你必须执行以下操作的应用程序的ssl数据。 将文件res / xml / network_security_config.xml添加到您的应用程序:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
然后在应用的清单中添加对此文件的引用,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
来源:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
答案 2 :(得分:0)
尽管有很多问题排查,但我仍然无法解决将我的Personal Android手机连接到Charles代理的问题-我总是会遇到网络出现的错误或OP中的错误。
我进入了手机的User Credentials
系统设置。我从过去的尝试和过去两年中安装的其他计算机中获得了20多个查尔斯证书,我删除了所有证书,一切又开始正常工作。希望对您有所帮助。