【问题标题】:GDax API GET request always returns Error 400GDax API GET 请求总是返回错误 400
【发布时间】:2017-12-07 11:26:38
【问题描述】:

我正在尝试从 GDAX 获取订单簿(链接到调用的文档),但是从 c# 可执行文件执行此操作时,我总是收到错误 400 - 错误请求。

当获取实际 URL 并将其粘贴到我的浏览器中时,它可以正常工作。

String URL = "https://api.gdax.com/products/BTC-USD/book?level=2";
WebRequest request = WebRequest.Create(URL);
WebResponse response = request.GetResponse();

【问题讨论】:

    标签: c# api


    【解决方案1】:

    您的 API 调用的实际问题是,API 在发出请求时需要一个用户代理字符串:以下是工作状态的代码:

            try
            {
    
                String URL = "http://api.gdax.com/products/BTC-USD/book?level=2";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);                
                request.UserAgent = ".NET Framework Test Client";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                var encoding = ASCIIEncoding.ASCII;
                using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
                {
                    string responseText = reader.ReadToEnd();
                }
    
            }
            catch(WebException ex)
            {
                HttpWebResponse xyz = ex.Response as HttpWebResponse;
                var encoding = ASCIIEncoding.ASCII;
                using (var reader = new System.IO.StreamReader(xyz.GetResponseStream(), encoding))
                {
                    string responseText = reader.ReadToEnd();
                }
            }
    

    ProtocolError 基本上表示你已经收到了响应,但是有一个与协议有关的错误,你可以在从异常中读取响应内容时观察到。我添加了 catch 来处理异常并读取 ex.Response(即 HttpWebResponse),并且可以看到 API 在进行调用时要求提供用户代理。我看到错误为 "{"message":"User-Agent header is required."}"

    你可以忽略异常块内的代码,我用它只是为了查看实际的响应消息是什么,其中包含实际的错误详细信息

    注意:我已将 WebRequest 装箱到 HttpWebRequest 以具有其他与 http 协议相关的属性,最重要的是 WebRequest 类不提供的“UserAgent”属性。

    【讨论】:

      【解决方案2】:

      您需要接受证书,Google 才能访问 https 网络请求。

      Like this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-19
        • 1970-01-01
        • 2019-03-13
        • 1970-01-01
        • 2013-01-21
        • 1970-01-01
        相关资源
        最近更新 更多