我在将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=
有人可以帮忙吗?
由于
答案 0 :(得分:1)
eDo0NTljNGRhNjQwMWQzOWJiZjkzMjdlZTE3MTc1ZTI1Yw==
是x:459c4da6401d39bbf9327ee17175e25c
的base64编码。试试online here。
授权的请求标头将是您在上面编码的base64字符串。
httpWebRequest.Headers.Add("Authorization", "Basic eDo0NTljNGRhNjQwMWQzOWJiZjkzMjdlZTE3MTc1ZTI1Yw==");
您可以使用this link在c#
中执行base64编码/解码。