【问题标题】:Converting curl command to C# code将 curl 命令转换为 C# 代码
【发布时间】:2014-03-11 12:28:04
【问题描述】:

我在将 curl 命令转换为 c# 代码时遇到问题。

我收到了一个 curl 命令,其中包含如下 API 密钥:

curl -k -u x:459c4da6401d39bbf9327ee17175e25c 
        -H "Content-Type: application/json" https://disney.com/v1/services.json

当我在 Fiddler 中观看此调用时,我可以看到如下所示的标头值:

Authorization: Basic eDo0NTljNGRhNjQwMWQzOWJiZjkzMjdlZTE3MTc1ZTI1Yw==

所以,curl 命令运行良好……但我无法在 c# 代码中复制它

我不明白x:459c4da6401d39bbf9327ee17175e25c 是如何变成Authorization: Basic eDo0NTljNGRhNjQwMWQzOWJiZjkzMjdlZTE3MTc1ZTI1Yw==

随后,我很困惑如何让我的 c# 代码从 API 密钥更改为我在 Fiddler 中看到的内容。

当我使用此代码添加标头时,授权失败:

httpWebRequest.Headers.Add("Authorization", "459c4da6401d39bbf9327ee17175e25c");

我也试过了:

httpWebRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("459c4da6401d39bbf9327ee17175e25c"));

但这会产生这样的标题值:

Authorization: Basic NDU5YzRkYTY0MDFkMzliYmY5MzI3ZWUxNzE3NWUyNWM=

有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: c# api curl http-headers


    【解决方案1】:

    eDo0NTljNGRhNjQwMWQzOWJiZjkzMjdlZTE3MTc1ZTI1Yw==x:459c4da6401d39bbf9327ee17175e25c 的base64 编码。试试online here

    Authorization 的请求标头将是您在上面编码的 base64 字符串。

    httpWebRequest.Headers.Add("Authorization", "Basic eDo0NTljNGRhNjQwMWQzOWJiZjkzMjdlZTE3MTc1ZTI1Yw==");
    

    您可以在c#中使用this link进行base64编码/解码。

    【讨论】:

    • 谢谢!所以,我是个白痴,我编码时没有“x:”,我认为这是一个 curl 参数......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2012-09-03
    • 2013-05-23
    • 2022-01-16
    • 1970-01-01
    • 2016-03-07
    相关资源
    最近更新 更多