当前位置: 首页 > 知识库问答 >
问题:

是否可以将凭据添加到。NET中现有的HttpClient对象[重复]

戴品
2023-03-14

我的应用程序调用了一堆不同的外部API类。为了便于这样做,我为每个要调用的外部API设置了一个类,所有这些类都继承自一个基类,该基类的开头如下所示:

public abstract class ApiBase : 
{
    protected static HttpClient client = new HttpClient();
    protected EntityFrameWorkCredentialObject credential;

    public bool AccountSupported(int accountId)
    {
        using (var context = DBProvider.GetTransientEntityContext())
        {
            credential = context.EntityFrameWorkCredentialObject
                            .Where(x => x.AccountId == accountId.FirstOrDefault();
        }

        return credential != null;
    }
}
using (var handler = new HttpClientHandler { Credentials = ... })
using (var client = new HttpClient(handler))
{
    var result = await client.GetAsync(...);
}

是否没有办法在现有对象上设置凭据,或者没有进行大量重构的其他方法

共有1个答案

梁泰
2023-03-14

credentials所做的就是将所需的身份验证标头添加到httpclient请求中。

您始终可以通过设置默认请求头手动添加身份验证头:

var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer","Token");
client.DefaultRequestHeaders.Authorization = 
    new AuthenticationHeaderValue("Basic",
    Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(
        string.Format("{0}:{1}", "yourusername", "yourpwd"))));
 类似资料:
  • 问题内容: 我有一个带有2个分区的Kafka集群。我一直在寻找一种将分区数增加到3的方法。但是,我不想丢失该主题中的现有消息。我尝试停止Kafka,修改文件以将分区数增加到3,然后重新启动Kafka。但是,这似乎并没有改变任何东西。使用Kafka ,我仍然看到它仅使用2个分区。我正在使用的Kafka版本是0.8.2.2。在0.8.1版中,曾经有一个名为的脚本,我想可能可以解决问题。但是,我在0.8

  • VisualStudio为window对象内置了大多数typescript定义,因为它们大多数都可以工作。但是,“window.chrome”没有定义。如何将其添加到现有的typescript定义中,以便让Visual Studio进行编译?

  • 问题内容: 在JavaScript中,我创建了一个像这样的对象: 如果直到运行时才确定属性名称,是否可以在初始创建此对象后为其添加其他属性?即 问题答案: 是。

  • 问题内容: 我处理非常大的二进制文件(每个文件从几个GB到多个TB)。这些文件以旧格式存在,并且升级需要将标头写入文件的FRONT。我可以创建一个新文件并重写数据,但是有时这可能需要很长时间。我想知道是否有更快的方法来完成此升级。该平台仅限于Linux,我愿意使用低级功能(ASM,C,C ++)/文件系统技巧来实现这一目标。基本库是Java,JNI是完全可以接受的。 问题答案: 没有本机执行此操作

  • 问题内容: 我有一个正在创建的字符串,并且需要向该字符串添加多个“ \ 0”(空)字符。在每个空字符之间是其他文本数据(仅ASCII字母数字字符)。 我的问题是,在J2SE中,当您添加第一个null(\ 0)时,java似乎确定它是一个字符串终止符(类似于C ++),并且忽略了所有附加的数据。不引发错误,尾随的数据将被忽略。我需要在字符串中的null后强制添加其他尾随数据。我必须对我支持的旧数据库

  • 问题内容: 例如,如果我有两个对象: 和 我想将x和y值从foo转移到oof。有没有办法使用es6解构语法来做到这一点? 也许像这样: 问题答案: 虽然丑陋且有点重复,但您可以 它将读取对象的两个值,并将它们写入对象上它们各自的位置。 就个人而言,我还是想读 要么 虽然。