Вы можете доверять определенному сертификату во время выполнения. Просто загрузите его с сервера, введите активы и загрузите, как это, используя ssl-utils-android :
OkHttpClient client = new OkHttpClient();
SSLContext sslContext = SslUtils.getSslContextForCertificateFile(context, "BPClass2RootCA-sha2.cer");
client.setSslSocketFactory(sslContext.getSocketFactory());
В приведенном выше примере я использовал OkHttpClient
, но SSLContext
может использоваться с любым клиентом на Java.
Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать. Я автор этой небольшой библиотеки.
Это намного безусловно возможно.
Вы можете создавать делегаты, которые являются функциями, внутри других методов. Это работает в C # 2.0:
public void OuterMethod() {
someControl.SomeEvent += delegate(int p1, string p2) {
// this code is inside an anonymous delegate
}
}
и это работает в более новых версиях с лямбдасом:
public void OuterMethod() {
Func<int, string, string> myFunc = (int p1, string p2) => p2.Substring(p1)
}
Ответ Эйлона технически правильный в том, что вы можете использовать делегаты для эффективного создания метода в способе. Вопрос, который я спросил, это почему вам нужно вообще создавать функцию в сети?
Это немного кода, запах меня. Да, внутренний метод многоразован для остальной части вашего метода, но он говорит о том, что есть элемент кода, в котором дизайн не был подумал. Скорее всего, если вам нужно использовать делегат таким образом, вы, вероятно, будете делать что-то довольно маленькое и повторяющиеся, что было бы лучше служить функцией в классе или даже в утилите. Если вы используете .NET 3.5, то определение расширений также может быть полезной альтернативой в зависимости от полезности делегированного кода.
Было бы легче ответить на этот вопрос лучше, если бы вы могли понять, почему вы чувствуете необходимость написать свой код таким образом.