2017-12-17 16 views
0

私はxamarinで学ぶ個人的なプロジェクトに取り組んでいます。基本的に私がやろうとしているのは、いくつかのAPIからいくつかのデータを取得することです。したがって、メソッドは "POST"でなければならず、いくつかのヘッダーも送信する必要があります。応答はトークンと物のリストでなければなりません。私はこの問題の周りに私の頭をラップしようとしたが、私はそれを理解することができませんでした。 私は多くのことを検索し、私は私のコードでここに来る助けたいくつかのことを発見した:投稿を使用してデータを取得してリストを返す要求

public async Task<List<Things>> GetThingsAsync() 
    { 
     var client = new HttpClient(); 
     client.DefaultRequestHeaders.Add("xxx", "xxx"); 
     client.DefaultRequestHeaders.Add("xxx", xxx); 

     HttpContent content = new StringContent(""); 
     content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 

     var json = await client.PostAsync("https://blabla/bla/", content); 

     var br = JsonConvert.DeserializeObject<List<Things>>(json); 
     return br; 

    } 

brを戻ると、このエラーが生成されます。

Error CS1503 Argument 1: cannot convert from 'System.Net.Http.HttpResponseMessage' to 'string'

私はJsonSerializerSettingsを使用してみましたが、私はできませんでしたそれを理解する。だから私は正しい軌道にいる?私は何かを欠いているか、このアプローチは完全に間違っていますか?前もって感謝します。

ジェイソンの答えがこのケースを解決しました。今私は、このコマンドを使用する別のページへの移動について:データの結合

SinglePageで行われたが、私はHttpResponseMessageを返しPostAsyncbr

答えて

1

を返すとき、それは私に例外をスローし、そのする必要があります応答の実際の内容を取得するために使用することができます

var client = new HttpClient(); 
    client.DefaultRequestHeaders.Add("xxx", "xxx"); 
    client.DefaultRequestHeaders.Add("xxx", xxx); 

    HttpContent content = new StringContent(""); 
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 

    var response = await client.PostAsync("https://blabla/bla/", content); 

    response.EnsureSuccessStatusCode(); 

    string json = await response.Content.ReadAsStringAsync(); 
    var br = JsonConvert.DeserializeObject<List<Things>>(json); 
    return br; 
+0

jsonが正しくシリアル化されていないことを確認していますか?あなたは実際の根本的な例外をキャッチしようとする必要があります。役に立たない "ブレーク状態"メッセージを扱う場合は、ここに複数の投稿があります。 – Jason

+0

ページは単なるクラスです。コンストラクタ、パブリックプロパティ、パブリックメソッドなどを介してデータを渡すことができます。デシリアライゼーションを検証し、クラッシュの原因となった行を特定します。 – Jason

+0

はい、もちろんありました。私が得るjsonは有効で、私が "return br"に "入る"とすぐにクラッシュが起こります。私は既にjsonを検証しようとしましたが、それは有効です。私はGetThingsCommandインターフェイスと関係があると思っていました。 :/ –

関連する問題