Любой, кто до сих пор борется с SSL-сертификатами StartCom на Android 2.1, посещает https://www.startssl.com/certs/ и загружает ca.pem, теперь в ответе предоставленный @emmby заменить
`export CLASSPATH=bcprov-jdk16-145.jar
CERTSTORE=res/raw/mystore.bks
if [ -a $CERTSTORE ]; then
rm $CERTSTORE || exit 1
fi
keytool \
-import \
-v \
-trustcacerts \
-alias 0 \
-file <(openssl x509 -in mycert.pem) \
-keystore $CERTSTORE \
-storetype BKS \
-provider org.bouncycastle.jce.provider.BouncyCastleProvider \
-providerpath /usr/share/java/bcprov.jar \
-storepass some-password`
на
`export CLASSPATH=bcprov-jdk16-145.jar
CERTSTORE=res/raw/mystore.bks
if [ -a $CERTSTORE ]; then
rm $CERTSTORE || exit 1
fi
keytool \
-import \
-v \
-trustcacerts \
-alias 0 \
-file <(openssl x509 -in ca.pem) \
-keystore $CERTSTORE \
-storetype BKS \
-provider org.bouncycastle.jce.provider.BouncyCastleProvider \
-providerpath /usr/share/java/bcprov.jar \
-storepass some-password`
Должно работать из коробки. Я боролся с этим более суток, даже после того, как @emmby получил идеальный ответ ... Надеюсь, это кому-нибудь поможет ...
Вызов file .__ init __
вполне возможен (например, в '/ dev / null'), но не имеет реального использования, потому что вы пытались переопределить write
не "принимает" для целей print
операторов - последний внутренне вызывает реальный file.write
, когда видит, что sys.stdout
является фактический экземпляр файла
(и путем наследования вы сделали это так).
print
на самом деле не нуждается ни в каком другом методе, кроме write
, поэтому ваш класс наследовать от объекта
вместо файла
будет работать.
Если вам нужны другие файловые методы (например, print
- это еще не все, что вы делаете), вы лучше всего реализовать их самостоятельно.
Вы также можете избежать использования super
:
class SuperFile(file):
def __init__(self, *args, **kwargs):
file.__init__(self, *args, **kwargs)
Вы сможете писать с его помощью.