【问题标题】:Can't access Public API with C# HttpClient无法使用 C# HttpClient 访问公共 API
【发布时间】:2021-05-29 22:30:34
【问题描述】:

我正在尝试通过 C# 从 Etoro(交易应用程序)向公共 API 发出请求。 如果我在浏览器中调用 URI 一切正常。例如: https://www.etoro.com/sapi/trade-data-real/live/public/portfolios?format=json&cid=3180395&client_request_id=8ae032db-7642-4b48-9628-b635a29aefba

但如果我运行我的程序,有时它可以工作,但大多数时候我收到“错误 512”。

System.Net.Http.HttpRequestException: "Der Antwortstatuscode gibt keinen Erfolg an: 512 (Unknown Code)."

我的代码中是否有错误,或者是用户代理的问题,还是其他问题?有什么想法吗?

{
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace cUrl
{
    class Program
    {
        public static string responseBody { get; set; }

        static async Task Main(string[] args)
        {
            Guid uuid = Guid.NewGuid();

            var client = new HttpClient();
            client.BaseAddress = new Uri("https://www.etoro.com/sapi/trade-data-real/live/public/portfolios?format=json&cid=3180395" + "&client_request_id=" + uuid);
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            responseBody = await client.GetStringAsync(client.BaseAddress);
            
            Console.WriteLine(responseBody);
            Console.ReadLine();
        }
    }
}

【问题讨论】:

  • 您没有处理您的 HttpClient,并且您将 BaseAddress 误认为是完整的 Uri。
  • 请您告诉我应该如何使用该命令?我尝试了一些变体,但总是出现同样的错误:(

标签: c# api httpclient


【解决方案1】:

我使用浏览器或邮递员尝试过,有时会得到结果,有时会出错

"error":{"failureReason":"Something went wrong, please try again"}

所以我认为这是 API 的问题,而不是客户端的问题。

【讨论】:

  • 是的,我也在考虑这个解决方案。但是当我刷新浏览器时,这个错误非常罕见。当我尝试我的应用程序时,它可以工作一两次,然后就不再工作了……非常奇怪的行为。 Eventuelly 正如你所提到的,问题出在服务器端,但是这个 API 被漏洞交易平台使用得非常重......现在我认为他们正在阻止应用程序,因为一些错误行为。感谢您的帮助!
猜你喜欢
  • 2022-10-24
  • 1970-01-01
  • 2015-11-20
  • 2016-02-13
  • 2018-07-29
  • 2013-06-22
  • 2012-10-06
  • 2011-12-31
  • 2012-12-09
相关资源
最近更新 更多