如果服务未启动,Grapevine.RESTClient 会引发有关 cookie 的异常

Posted

技术标签:

【中文标题】如果服务未启动,Grapevine.RESTClient 会引发有关 cookie 的异常【英文标题】:Grapevine.RESTClient throws exception about cookies if service is not up 【发布时间】: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,那应该很难弄明白。 【参考方案1】:

我也遇到了同样的问题。不幸的是,错误消息具有误导性。对我来说,解决方法是在 App.config 文件中添加一个默认代理。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.net>
        <defaultProxy useDefaultCredentials="true" />
    </system.net>
</configuration>

【讨论】:

如果有Grapevine默认应该做的事情,在项目页面打开一个问题,我会看一下。谢谢!

以上是关于如果服务未启动,Grapevine.RESTClient 会引发有关 cookie 的异常的主要内容,如果未能解决你的问题,请参考以下文章

sh (未测试)如果没有控制台访问权限(如drac,ilo等),则销毁服务器,并且无法启动实时系统

数据库未启动或连接失败是怎么回事,如何去核实?

诊断策略服务未运行是啥错误

启动SQL 2005服务 中的 SQL Server(MSSQLSERVER)是报错:请求失败,或未及时响应。

c:\windows\system32\service.msc指定的服务未安装怎么办

如果应用程序未启动,Flutter Firebase 推送通知无法数据