2017-12-12 5 views
1

私は自分のWebサービスをテストしてい(ローカル)可用性HttpClient方法チェック、Webサービスの可用性Xamarin.Forms(PCL)でのHttpClientメソッドを使用する前に

を使用する前に、私は細かい作業を下回る 私のコードを使用しています「google.com」私は自分のWebサービスのURLを与えるとき、私は私はあなたが呼び出す必要がありますポートを設定するためにofficial connectivity plugin documentationによるとその

if (CrossConnectivity.Current.IsConnected) 
      { 
       bool isRemoteReachable = await CrossConnectivity.Current.IsReachable("192.168.1.107",3); 
       if (!isRemoteReachable) 
       { 
        await DisplayAlert("Server not available", "Please try again later", "OK"); 
       } 
      } 
+0

あなたのデバイス/エミュレータからIPにアクセスでき、pingに応答しますか? – Jason

+0

あなたのURLに「http://」プレフィックスを付けてみましたか?あなたのURLにポートを指定する必要があるかもしれませんか? – EvZ

+0

私は、私のURLにポート8733がなければならないことに気付きました。どこに置くことができますか? – Immortal

答えて

1

を達成することができますどのように私のURLにポート番号を含めることは動作しません置きます次の方法でメソッド:

/// <summary> 
/// Tests if a remote host name is reachable (no http:// or www.) 
/// </summary> 
/// <param name="host">Host name can be a remote IP or URL of website</param> 
/// <param name="port">Port to attempt to check is reachable.</param> 
/// <param name="msTimeout">Timeout in milliseconds.</param> 
/// <returns></returns> 
Task<bool> IsRemoteReachable(string host, int port = 80, int msTimeout = 5000); 

または内部ホストのために:

私はに翻訳されなければならないと考えている
/// <summary> 
/// Tests if a host name is pingable 
/// </summary> 
/// <param name="host">The host name can either be a machine name, such as "java.sun.com", or a textual representation of its IP address (127.0.0.1)</param> 
/// <param name="msTimeout">Timeout in milliseconds</param> 
/// <returns></returns> 
Task<bool> IsReachable(string host, int msTimeout = 5000); 


IsReachable("192.168.1.107:8733", 30 * 1000); 

msTimeoutに注意して、あなたはそこに3ミリ秒の値を持って、それを増加させそうメソッドはほぼ即座にネガティブな結果を返します。

編集:
短いチャットの後、ライブラリ固有の問題であることが判明しました。自分でpingメソッドを作成するか、接続プラグインのgithubページにバグをコミットすることをお勧めします。

+0

それは私に時代遅れの方法を与える\t bool isRemoteReachable = await CrossConnectivity.Current.IsRemoteReachable( "http://192.168。 1.107/Sy nchronization/rest/g etclassesbrief "、8733,3) – Immortal

+0

あなたは私の答えを読んだことがありますか?内部ホストをチェックする必要がある場合、リモートホストをチェックするためにメソッドを使用しようとしているのはなぜですか?あなたのタイムアウトはまだ3msです。 – Immortal

+0

文字列を受け取る – EvZ

関連する問題