私の Android アプリケーションは、.NET で記述された ASP.net Web API と通信することになっていC#.Net
ます。電話から送信されるデータには、一般に公開してはならないデータが含まれています。だから私はhttps
プロトコルを使用しようとしています。HTTPS
私のサーバー側では、次のようにすべてのリクエストを にする必要があります。
登録済みImeiが必要
public class RequireRegisteredImeiAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
var request = actionContext.ControllerContext.Request;
if (request.RequestUri.Scheme == Uri.UriSchemeHttps)
{
//OKAY
}
else
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Forbidden);
}
}
}
そしてコントローラーで:
[RequireRegisteredImei]
public string Post()
{
}
携帯電話から簡単なメッセージを送信してこのコードをデバッグしましたがhttp request
、このコードは非常にうまく機能しますが、拒否されます。
https
そこで、 Android フォンからリクエストを送信する方法を検討し始めました。私はこのようなものを思いついた:
public static DefaultHttpClient getSecureHttpClient() {
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
schemeRegistry.register(new Scheme("http", SSLSocketFactory.getSocketFactory(), 80));
BasicHttpParams params = new BasicHttpParams();
SingleClientConnManager mgr = new SingleClientConnManager(params, schemeRegistry);
return new DefaultHttpClient(mgr, params);
}
私はこの方法をこのように使用しています:
HttpClient httpClient = CustomHttpClient.getSecureHttpClient();
これは、IOException: No peer certificate
これに関するいくつかのスレッドを読みました:
Android での https (ピア証明書なし) に関する問題
Android 2.3 では「ピア証明書がありません」というエラーが発生するが、4 では発生しない
HTTPS
しかし、アンドロイドからデータを投稿する簡単な方法が必要ですか?