如何编写Python b" mystring"在C#中

时间:2014-12-22 10:37:16

标签: c# python api

短篇小说: 我试过了

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,未经授权......所以我相信我错过了用户名密码的编码程序!

1 个答案:

答案 0 :(得分:0)

var encoded_credentials = "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(userpass));

这就是我的“长篇故事”问题的答案! 我设法在调试python代码(确认授权)之后弄明白,所以我使用encoded_credentials并在我的c#代码中使用它,所以它也成功授权了...... 然后我将错误的值与正确的值进行了比较,经过几次尝试,我得到了正确的值!

这使我得出结论,“短篇小说”问题的正确答案只是:

"mystring"