我正在使用RestSharp发出POST请求(在Windows Phone 7.1客户端上)。我将字符串发送到请求正文中的服务。看起来服务已成功调用,它返回正确的值(整数),但响应对象为null:
client.ExecuteAsync<T>(request, (response) => {
data = response.Data; // response is null in debugger
});
我不明白为什么会这样。
答案 0 :(得分:0)
<T>
不是该调用的有效值。我不确定除非你用通用方法包装它,否则它甚至会在那里构建。
此外,响应是否以纯文本形式返回?什么是Content-Type返回?最有可能的是,您应该只使用ExecuteAsync(request, callback)
而不使用泛型参数,并从response.Content
中获取数据,这是响应正文的字符串。 response.Data
用于自动反序列化的XML或JSON(或自定义)响应,如果您使用指定要反序列化的类型的泛型方法重载。
答案 1 :(得分:0)
这似乎是RestSharp异步调用的持续问题 - 对于HTTP传输错误,ErrorException对象无用(返回null)。检查StatusCode属性是否返回除HttpStatusCode.OK之外的任何内容。 StatusDescription也不是非常有用,因为它与服务器响应有效负载中的完整状态消息不匹配。