【发布时间】:2015-11-09 19:37:15
【问题描述】:
所以我使用 Grapevine.RESTClient 来管理我的 REST 接口的客户端。我正在使用它在 LocalSystem 中运行的服务和用户在同一台机器上运行的进程之间进行通信。
我的问题是,当服务未运行时,我的客户端会收到异常消息“错误:值不能为空”。参数名称:cookies'
我正在尝试在客户端上创建一些逻辑,该逻辑应该理解并接受有时服务不可用,例如服务自动更新时。
或者我应该接受异常的消息有点奇怪?
RESTClient client;
client = new RESTClient(baseUrl);
RESTRequest request = new RESTRequest(resource);
request.Method = Grapevine.HttpMethod.GET;
request.ContentType = Grapevine.ContentType.JSON;
request.Timeout = 30000;
RESTResponse response = client.Execute(request);
上面会抛出 System.ArgumentNullException,其中 e.Message = "Value cannot be null.\r\nParameter name: cookies"
嗯...查看 github 上的 Grapevine 代码,即使响应对象是从 GetResponse 调用的 catch 块中的 e.response 创建的,该代码似乎也会尝试将 cookie 集合添加到 this.Cookies 中。它可能有也可能没有 cookie 集合。 this.Cookies.Add(response.Cookies) 周围应该有一个空块测试吧?
https://github.com/scottoffen/Grapevine/blob/master/Grapevine/Client/RESTClient.cs
无法按照葡萄藤开发者的建议创建葡萄藤标签。积分不够
【问题讨论】:
-
代码示例会很有用,从这个描述很难看出你在做什么。
-
如果您了解 Grapevine,应该很容易获得灵感。我在帖子中添加了一些代码以使其清楚。而且我还查看了 Grapevine 的实现,以了解发生了什么。
-
我希望你发现 v4.0 在这方面更容易使用。在接下来的一个月里,网站上的文档应该会被彻底清除掉,但如果你以前用过 Grapevine,那应该很难弄明白。