2016-08-13 11 views
2

私は、サーバーにデータを送信するためのHttpClientを使用していました。私は正常に応答を確認することができますが、私の応答文字列は、PHPファイルにあります。私はPHPでこの文字列にアクセスする方法を知りません:C#のHTTPClient GET応答

if user exist echo true; 
else echo false; 

WebClientクラスで試しました。それは働いたが、私はそれが成功したかどうかを確認することができなかった。ここで

はコードです:

public Boolean authorization(String korisnik, String zaporka) 
{ 
    var client = new HttpClient(); 

    var pairs = new List<KeyValuePair<string, string>> 
    { 
     new KeyValuePair<string, string>("korisnik", korisnik), 
     new KeyValuePair<string, string>("zaporka", zaporka) 
    }; 

    var content = new FormUrlEncodedContent(pairs); 

    var response = client.PostAsync("http://www.etfos.unios.hr/~tsapina/autorizacija.php", content).Result; 
    System.Diagnostics.Debug.WriteLine(response); 
    if (response.IsSuccessStatusCode) 
    { 
      MessageBox.Show("success respond"); 
      return false; 
     } 
    return true; 
} 

私はPHPファイルの出力につながる取得する必要があります。

答えて

0

あなたはContentは、値、コンテンツのReadAsStringAsync()を持ってチェックしたいです。それはJSONだから、あなたはそれを解析する必要があります。ここで

、私はあなたがデータにアクセスするために使用することができDictionary<string, string>オブジェクトにJSONをデシリアライズするJson .NETからJsonConvert.Serialize<Dictionary<string,string>>()を使用します。私もきちんと非同期機能を利用するためにasyncawaitを使用して提案することができる:

public async bool Authorization(string korisnik, string zaporka){ 
    ... 
    try { 
     //will always throw an exception if not successful 
     response.EnsureSuccessStatusCode(); 

     var response = await client.PostAsync("http://www.etfos.unios.hr/~tsapina/autorizacija.php", content); 

     if (httpResponse.Content != null) { 
      var responseContent = await httpResponse.Content.ReadAsStringAsync(); 

      var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseContent); 

      Console.WriteLine(dict["post_var_key"]); 
     } 
    } 
    catch (Exception ex) { 
     Console.WriteLine("Error occured: " + ex.Message); 
    } 
} 
+0

おかげで、私は、 ')(' EnsureSuccessStatusCodeのアップデートを参照してください@markomarinovic –

+0

をしようとします。エラーが返された場合は、例外がスローされることを確認します。 –

関連する問題