我正在写一个简单的REST客户端的C#WinForm应用程序。 我用RestSharp做出发送请求并获得响应更加容易。 我有几个问题,关于我应该怎么设计我的客户端。
用户与客户端的交互只有一次。 他推一个Button
和客户端被实例化并传递给private
方法做一些逻辑背景。 它从服务器访问对象,并在用户的内部数据库中的对象它们进行同步。
问题的关键是客户端的方法是通过访问private
以下的GUI用户的单个动作调用的方法。 他没有叫过它的客户端的方法的任何控制,以及以何种顺序。
所以我的问题是:
我可以向服务器请求一个令牌只有一次,当我实例化我的客户,然后将其存储在客户端实例在客户端的以下请求备查? 令牌是用户名和密码的哈希值,所以它不应该随着时间而改变。 当然,一旦我创建客户端的新实例,它会再次请求令牌服务器。
它是好的,保持一个
Request
对象实例在我的客户? 那么我可以设置请求头只有一次,所有的访问API的方法,只需要更改请求的资源URL和HTTP方法。 这将减少在我的代码重复性。
例如:
public PriceListItem[] GetPriceListItems()
{
string requestUrl = Resources.PriceListItemsUrl;
var request = new RestRequest(requestUrl, Method.GET);
request.AddHeader("SecureToken", _token);
var response = Client.Execute(request) as RestResponse;
JObject jObject = JObject.Parse(response.Content);
var priceListItems = jObject["Data"].ToObject<PriceListItem[]>();
return priceListItems;
}
我有利用不同的资源URL不少方法,但都具有相同的标题。 如果我只保留一个Request
比如在我的客户,我可以设置页眉只有一次。 这是方法好吗? 我想,以避免任何委托和事件。