2017-10-05 1 views
0

自動交換プログラムを実行するためのAPIを指すPOST要求コードを実行しました。POSTリクエストの一部を変数に入れます

string webAddr = "https://shapeshift.io/shift"; 

      var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr); 
      httpWebRequest.ContentType = "application/json; charset=utf-8"; 
      httpWebRequest.Method = "POST"; 

      using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
      { 
       string json = "{ \"withdrawal\" : \"***ADDRESS WITH LETTER AND NUMBER***\", \"pair\" : \"eth_xmr\" }"; 

       streamWriter.Write(json); 
       streamWriter.Flush(); 
      } 
      var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
      using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
      { 
       var responseText = streamReader.ReadToEnd(); 
       Console.WriteLine(responseText); 
      } 

とコードを実行した後、私は今、コンソール

{"orderId":"1f90346c-c6d4-4d89-a24c-78b2bbdb6292","deposit":"0x534aa684274b4711f65b2d0e2e403cb169201255","depositType":"ETH","withdrawal":"***ADDRESS WITH LETTER AND NUMBER***","withdrawalType":"XMR" 

でこれを取得していますが、私はから取得しています預金からアドレスを入れたい:ここ コードですAPIを文字列変数に変換します。私はいくつかのコードを試しましたが、動作させることはできません。どうすればこのアドレスを文字列変数に入れることができますか?

答えて

1

レスポンスを逆シリアル化して、そこから取得することができます。そうするためには、あなたは、クラスを定義するのはApiResponseという名前を付けてみましょうことができます:

public class ApiResponse 
{ 
    [JsonProperty("orderId")] 
    public string orderId { get; set; } 

    [JsonProperty("deposit")] 
    public string deposit { get; set; } 

    [JsonProperty("depositType")] 
    public string depositType { get; set; } 

    [JsonProperty("withdrawal")] 
    public string withdrawal { get; set; } 

    [JsonProperty("withdrawalType")] 
    public string withdrawalType { get; set; } 
} 

、その後

var responseText = streamReader.ReadToEnd(); 

後のデシリアライズを行います

var apiResponse = JsonConvert.DeserializeObject<ApiResponse>(responseText); 

私はJson.NETライブラリを使用していました。もしあなたがそれをやっていないのであれば、そうするか、別のライブラリを利用して上記のコードを変更することができます。

関連する問題