3
我正在使用RestRequest對Web服務進行POST。響應採用JSON格式,但我將其作爲響應內容獲取。作爲ASCII的內容和數據爲空。代碼:反序列化響應
var request = new RestRequest(api, Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddObject(data);
RestClient client = new RestClient("http://IP:PORT/proto");
client.ExecuteAsync<jLoginResponse>(request, (response) =>
{
var resource = response.Data;
});
這裏response.Data是空的,內容是 { 「UID」: 「1234」}
jLoginResponse被聲明爲
[DataContract]
public class jLoginResponse
{
public string uid { get; set; }
}
,但它沒有得到應該自動反序列化。
沒有它不應該,RestSharp不使用此佔位符。問題在於該服務器將json作爲文本發佈,而不是application/json。 – Marin 2012-03-29 18:51:18
RestSharp使用JSON.net進行JSON序列化,如果將JSON.net設置爲「Explict Serialization」,它可以使用屬性(佔位符),甚至每個示例都有它自己的JsonProperty ...但我很高興問題是解決了! – 2012-03-29 20:31:07
因此,如果我將它設置爲顯式,我可以使用[DataMember Name =「...」],它會正確評估它? – Marin 2012-03-30 12:06:43