0
イントラネットの通知を管理するためにXamarin.Formsを使用してアプリケーションを作成するために開発中です。
私は最初にユーザーのログインとパスワードを確認するWebサービスに接続するメインページに "Connection"というボタンがあります。
私の問題は、Webサービスへの接続が常に失敗したことです。1つ以上のエラーが発生しました(リクエストの送信中にエラーが発生しました) - Xamarin.Forms
私は郵便配達員とウェブサービスをテストしました。応答がありますが、Visual Studio(UWPまたはDroidプロジェクト)のアプリで試してみると、毎回例外が発生し、理由はわかりません。私は、私は、Visual Studioのデバッグ画面上でこの結果を得る「接続」ボタンをクリック
private string WebServiceAuthentication()
{
string url = "https://chlevinatier.agiir-portail.com/api/jsonws/AlertesPortail-portlet.portal/check-authentication";
string login = "test";
string password = "test";`
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "tjhGjfM1");
try
{
return client.GetAsync($"{url}?login={login}&password={password}").Result.Content.ReadAsStringAsync().Result;
}
catch (AggregateException ae)
{
ae.Handle((x) =>
{
if (x is HttpRequestException)
{
HttpRequestException hre = x as HttpRequestException;
Debug.WriteLine($"Data : {hre.Data}\nHelpLink : {hre.HelpLink}\nHResult : {hre.HResult}\nInnerException : {hre.InnerException}\nMessage : {hre.Message}\nSource : {hre.Source}\nStackTrace : {hre.StackTrace}");
}
return false;
});
return string.Empty;
}
catch (Eception e)
{
Debug.WriteLine($"Data : {e.Data}\nHelpLink : {e.HelpLink}\nHResult : {e.HResult}\nInnerException : {e.InnerException}\nMessage : {e.Message}\nSource : {e.Source}\nStackTrace : {e.StackTrace}");
return string.Empty;
}
}
}
は:
*******************************************************************************
>Data : System.Collections.ListDictionaryInternal
>HelpLink :
>HResult : -2147012851
>InnerException : System.Runtime.InteropServices.COMException (0x80072F0D): Le texte associé à ce code d’erreur est introuvable.
>L'autorité de certification n'est pas valide ou correcte
> at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
> at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
> at System.Net.Http.HttpHandlerToFilter.<SendAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
> at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
> at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
> at System.Net.Http.HttpClientHandler.<SendAsync>d__86.MoveNext()
>Message : An error occurred while sending the request.
>Source : System.Net.Http
>StackTrace :
>at System.Net.Http.HttpClientHandler. <SendAsync>d__86.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
> at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
> at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
> at System.Net.Http.HttpClient.<FinishSendAsync>d__58.MoveNext()
*******************************************************************************
あなたはインターネットへのアクセス権があることを確認してください(おそらくHTTP Getと無資格のwww.google.comのような別のアドレスにアクセスしようとします) – hugoterelle
エラーメッセージを見てください(フランス語からの粗い翻訳:認証局が無効か不正です)あなたはHTTPS/SSLエンドポイントに接続しようとしているようです。自己署名証明書を使用する場合、証明書を検証する必要がないことをプログラムに伝えるオプションがあります。 – NaeiKinDus
注意すべき点は、ログインを実行するために 'GET'を使うべきではありません。 – forivall