You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#无法连接Teller.io API,但Curl可正常调用,求排查问题

问题分析与解决方案

你的C#代码中Basic认证的Base64字符串有误,这是导致连接失败的核心原因:

curl命令里的-u test_token_ky6igyqi3qxa4: 表示用户名是test_token_ky6igyqi3qxa4,密码为空,对应的Basic认证规则是对用户名:密码格式的字符串做Base64编码,也就是需要编码test_token_ky6igyqi3qxa4:(注意末尾只有一个冒号)。而你当前使用的dGVzdF90b2tlbl9reTZpZ3lxaTNxeGE6Og==解码后是test_token_ky6igyqi3qxa4::,多了一个冒号,导致认证不通过。

修正后的代码(两种可选方式)

方式1:直接替换正确的Base64字符串

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.teller.io/accounts");
// 正确的Base64编码结果(对应"test_token_ky6igyqi3qxa4:")
request.Headers.Authorization = new AuthenticationHeaderValue("Basic", "dGVzdF90b2tlbl9reTZpZ3lxaTNxeGE6");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();

方式2:让代码自动生成认证字符串(推荐,避免手动编码错误)

var client = new HttpClient();
// 自动生成符合要求的Base64认证字符串
var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes("test_token_ky6igyqi3qxa4:"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);

HttpResponseMessage response = await client.GetAsync("https://api.teller.io/accounts");
response.EnsureSuccessStatusCode();

内容的提问来源于stack exchange,提问作者user1730289

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 07:31:00