は、だから私は、私は、(私が作っていアンドロイドアプリ用)テスト用の自己署名証明書を使用して、それがすべての作業を完全にサーバ側でHTTPSにすべての私のHttp Webサービスを変更していますと私のPCの証明書ストアに証明書を追加してサイトに完全にアクセスできるので、これを知っています。クライアント側でAndroidアプリを呼び出す際に、どのように問題が起きているのですか。アンドロイドXamarin C#:HTTPS ServiceStackと自己署名証明書
私Servicestackコールは次のようになります。
var client = new JsonServiceClient(stubServicesBaseUrl);
return client.Get(new GetLastStatusUpdate()).StatusUpdates.Last();
、これらは、それが唯一のhttpたときに動作するために使用さが、私は資格情報の呼び出しを格納し、信頼アンドロイドに自己署名証明書を追加するためのコードを追加しましたので、動作を停止しています代わりにリクエストがタイムアウトしたようです。
byte[] certificate;
using (var streamReader = new StreamReader(Assets.Open("ScoutTestCert.crt")))
{
using (var byteStream = new MemoryStream())
{
streamReader.BaseStream.CopyTo(byteStream);
certificate = byteStream.ToArray();
}
}
var installCertificate = KeyChain.CreateInstallIntent();
installCertificate.PutExtra(KeyChain.ExtraCertificate, certificate);
StartActivity(installCertificate);
上記のコードは、「ユーザー」セクションのアンドロイド信頼できるストアに証明書を追加し、私は問題なくandroidEmulator上のインターネットアプリを通じてサイトに移動することができますので、ときにのみ問題が表示されます思えます私のアプリケーションコードでServiceStack呼び出しをしようとしています。余分そのサービス・スタックのニーズまたはそのような何かを設定するよう
は、私は私のコードで何かが足りないのですか?私はこの問題を数日間、実際の道のりで苦労してきました! 私はservicestackとしてwebservice呼び出しを保つために、Android固有のコードではなくPCLにしたいと考えています。
ありがとうございました。
すべての証明書が受理されなければならないように、だから私は私のアプリで起こる最初のものとしてServerCertificateValidationCallbackラインに追加してみました(ただ、これは私の作品をテストするために)、私はまだ同じ「WebExceptionを取得するように見える:要求がタイムアウトしました" エラーメッセージ。なぜこの例外が発生しているのかわかりません。要求が送信されていて何も返されていないので、これは正しいですか? 私はアクションの私の次のコースは多分HTTPSサービスに組み込まれた別のxamarinアンドロイドをしようとし、それがうまくいけば動作するかどうか見てだと思います。 – wootank
@wootankわからないが、私は基本的な.NETの[HttpWebRequestの](https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest(V = vs.110)を得ることで最初に見てねWebRequest.Create(HttpWebRequestの) '上記のいずれかの追加の層を除去します( "URL")を':.aspxの)、直接、すなわち、URLを使用して動作します。NETのBCLクラス。それがうまくいかない場合は、Xamarinにバグレポートを提出して、根本的な問題点を教えてください。 – mythz
こんにちは、助けてくれてありがとう、結局私たちはJsonHttpClientとModernHttpClientを使って2番目の提案と一緒に一人で行くことに決めました。 – wootank