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