REST SHARP EXECECUTE はキャスト例外のため失敗します
-
12-12-2019 - |
質問
私はこれを持っています:
public Int32 NumberOfLocationsForCompany(int companyId)
{
var response = _curl.ResetRequest()
.WithPath(LOCATION_URL)
.AddParam("companyId", companyId.ToString())
.RequestAsGet()
.ProcessRequest<Int32>();
return response;
}
.
これは最後にこれを呼び出します。
public T ProcessRequest<T>() where T : new()
{
var response = _client.Execute<T>(_request);
if (response.ErrorException != null)
{
throw response.ErrorException;
}
return response.Data;
}
.
しかし私はこのエラーを得ます。INTをコレクションにマッピングしようとしているのか、あるいはその理由が1つまたは22 Iを指定しています。`2 [System.String、System.Object] '。
私が直接APIを打つとき、これは私が戻ってくるものです
<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">17</int>
.
私はそれが残りのシャープについて理解していないものだと思います。executeメソッドにintを期待するように指示し、それが受信し、そしてintを集めていますが、それをコレクションにマッピングしようとしています。コレクションはなぜどこから来たのか?
基本応答オブジェクトの内容を調べると、適切な結果 "17"が存在することに気付いた、なぜそれを見つけることができないのですか?それでもそれはコレクションを見つけるのですか?
解決
応答オブジェクトを見ると、戻り値がデータ内のコンテンツVSにありました。私はオブジェクトまたはオブジェクトのリストを返さなかったときはいつでもこれが真実であることがわかりました。
だからint、string、boolなどを期待しているときは、次のものを使用して戻り値の型をキャストします。
public string ProcessRequestWithValue()
{
var response = _client.Execute(_request);
if (response.ErrorException != null)
{
throw response.ErrorException;
}
return response.Content;
}
.
これが助けに役立つことを願っています!
所属していません StackOverflow