REST Sharp Execute non riesce a causa di un'eccezione fest
-
12-12-2019 - |
Domanda
Ho questo:
public Int32 NumberOfLocationsForCompany(int companyId)
{
var response = _curl.ResetRequest()
.WithPath(LOCATION_URL)
.AddParam("companyId", companyId.ToString())
.RequestAsGet()
.ProcessRequest<Int32>();
return response;
}
.
che lo chiama alla fine.
public T ProcessRequest<T>() where T : new()
{
var response = _client.Execute<T>(_request);
if (response.ErrorException != null)
{
throw response.ErrorException;
}
return response.Data;
}
.
Ma ottengo questo errore.Non capisco perché sta cercando di mappare un INT a una collezione o perché è INT64 VS I 32 che ho specificato.: Impossibile lanciare oggetto di tipo 'system.int64' per digitare system.Collections.generic.Indictionary`2 [System.String, System.Object] '.
Quando ho colpito l'API direttamente questo è quello che ottengo
.
<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">17</int>
Sento che è qualcosa che non capisco di riposare Sharp.Dico al metodo di esecuzione di aspettarsi un INT, riceve e INT, ma sta cercando di mapparlo a una collezione.Perché e da dove viene la collezione?
Ho notato che quando esammo il contenuto dell'oggetto della risposta di base, il risultato appropriato è presente "17", perché non può riposare Sharp lo trovarlo?E ancora dove trova la collezione?
Soluzione
Quando si esaminano l'oggetto di risposta che ho trovato il valore di ritorno è stato nel contenuto vs in dati.Ho trovato che questo è vero ogni volta che non stavo restituendo un oggetto o un elenco di oggetti.
Allora ora quando mi aspetto un INT, String, Bool, ecc. Io uso il seguente e lancio il tipo di valore di ritorno:
public string ProcessRequestWithValue()
{
var response = _client.Execute(_request);
if (response.ErrorException != null)
{
throw response.ErrorException;
}
return response.Content;
}
.
Spero che questo aiuti!