我正在尝试使用ServiceStack连接到OAuth2 / JSON服务。 (C#)
首先,我正在努力寻找一个很好的示例,因为大多数示例似乎都使用ServiceStack v3。因此,如果您知道一个很好的例子,那么可以解决这个问题。
我正在处理关于以下问题的示例代码:ServiceStack intercept requests before they are sent client side
但是我很难找到要安装的正确NUGET软件包。
我有NUGET包ServiceStack,ServiceStack.Client,ServiceStack.Common和ServiceStack.Authentication.OAuth2,ServiceStack.HttpClient。
我仍然无法解决:
07Jun2018 21:37:10
名称空间名称“ web”在名称空间ServiceStack.Common中不存在
和
request.ContentType = ServiceStack.Common.Web.ContentType.Json;
ApiCustomHttpHeaders在当前上下文中不存在。
答案 0 :(得分:2)
如链接的答案所示,您需要在ServiceStack v4 +中使用RequestFilter
。 MimeTypes在MimeTypes
静态类中可用,否则,您可以使用JSON Content-Type application/json
,例如:
client.RequestFilter = req =>
{
// ContentType still null at this point so we must hard code it
// Set these fields before trying to create the token!
request.ContentType = MimeTypes.Json;
request.Date = DateTime.Now;
var secret = "5771CC06-B86D-41A6-AB39-9CA2BA338E27";
var token = ApiSignature.CreateToken(request, secret);
req.Headers.Add(ApiCustomHttpHeaders.UserId, "1");
req.Headers.Add(ApiCustomHttpHeaders.Signature, token);
};