短篇小说: 我试过了
Encoding.ASCII.GetBytes("mystring")
但似乎没有工作......
长篇故事: 我试图调用一个API,我有这个python示例代码:
userpass = username + ":" + password
encoded_credentials = b"Basic " + base64.b64encode(userpass.encode('ascii'))
headers = {'Version': '2.0', 'Accept': 'application/json', 'Authorization': encoded_credentials}
url = 'https://' + server_ip + '/api/help/capabilities'
request = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(request)
我制作的c#代码是:
string userpass = username + ":" + password;
byte[] encodedbytes = System.Text.ASCIIEncoding.ASCII.GetBytes(userpass);
var encoded_credentials = Encoding.ASCII.GetBytes("Basic ") + Convert.ToBase64String(encodedbytes);
var request = (HttpWebRequest)WebRequest.Create("https://" + server_ip + "/api/help/capabilities");
request.Method = "GET";
request.ContentType = "application/json";
request.Headers.Add("Authorization", encoded_credentials);
var response = (HttpWebResponse)request.GetResponse()
我得到的结果是401,未经授权......所以我相信我错过了用户名密码的编码程序!
答案 0 :(得分:0)
var encoded_credentials = "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(userpass));
这就是我的“长篇故事”问题的答案! 我设法在调试python代码(确认授权)之后弄明白,所以我使用encoded_credentials并在我的c#代码中使用它,所以它也成功授权了...... 然后我将错误的值与正确的值进行了比较,经过几次尝试,我得到了正确的值!
这使我得出结论,“短篇小说”问题的正确答案只是:
"mystring"