我在尝试从 Android 应用程序调用身份服务器时遇到问题。问题是我已经搜索了一种从基于 C# 的应用程序以外的任何其他东西调用 IdSrv 的方法,并且只找到了一个如何从 JS 调用它的示例。因此,这就是从 JS 进行调用的方式:
function HttpBasicClient(uid, pwd) {
this.scheme = "Basic";
this.token = Base64.encode(uid + ":" + pwd);
}
HttpBasicClient.prototype.get = function (url) {
var scheme = this.scheme;
var token = this.token;
var settings = {
type: "GET",
url: url,
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", scheme + " " + token);
}
};
这是我对 Android 的翻译:
HttpClient client = getCustomHttpClient();
HttpResponse response;
String scheme = "Basic";
String token = Base64.encodeToString((username+":"+password).getBytes(), 0);
try{
HttpGet get = new HttpGet("https://url/issue/wstrust/mixed/username");
get.setHeader("Authorization", scheme + " " + token);
response = client.execute(get);
StatusLine sLine = response.getStatusLine();
int statusCode = sLine.getStatusCode();
我正在使用接受所有类型证书的自定义 HttpClient,因此 SSL 应该不是问题。问题是,当拨打电话时,Http 400
会回复我,告诉我请求格式不正确。我的问题是,有谁知道应该如何准确调用 Identity Server 才能接受它并将令牌返回给我?