【问题标题】:Make a request to the Square Connect api to list the payments向 Square Connect api 发出请求以列出付款
【发布时间】:2015-02-14 09:34:03
【问题描述】:

我正在尝试向 Square Connect api 发出请求以列出付款。我收到此错误

“远程服务器返回错误:(401) Unauthorized.”

API 说 打开您最喜欢的命令行应用程序(例如,如果您使用的是 Mac,则为终端)并运行以下 curl 命令,并在指示的位置提供您的访问令牌: curl -H "授权:承载 PERSONAL_ACCESS_TOKEN" https://connect.squareup.com/v1/me/payments

这是我的代码。我做错了什么?

WebRequest request = WebRequest.Create("https://connect.squareup.com/v1/me/payments");
request.ContentType = "application/json";
request.Method = "GET";
request.Headers("Authorization") = "XXXXX";

HttpWebResponse response = null;
string responseMessage = null;
response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode == HttpStatusCode.OK) {
    using (Stream stream = response.GetResponseStream()) {
    using (StreamReader reader = new StreamReader(stream)) {
        responseMessage = reader.ReadToEnd();
        }
    }
}

Assert.IsNotNull(responseMessage);

【问题讨论】:

  • 在上面的示例中,您的“授权”标头的编辑值是否在个人访问令牌之前包含“持有者”一词?
  • 我将在不久的将来发布一个 c# 库来与他们的 api 交互。你有兴趣吗?
  • @RonnieOverby 已经走上制作这个 C# 库的道路了吗?我会对它感兴趣。
  • 没有。事实上,我不记得有任何打算这样做。 :)

标签: c# square-connect


【解决方案1】:
        var client = new RestSharp.RestClient();
        var request = new RestRequest("https://connect.squareup.com/v1/me/payments", Method.GET);
        request.RequestFormat = DataFormat.Json;
        request.AddHeader("Authorization", "Bearer xxxxx");
        //setHeaders(request);
        var Response = client.Execute(request);

【讨论】:

  • 确保您的访问令牌未过期。并检查授权请求,然后再试。
【解决方案2】:

而不是

request.Headers("授权") = "XXXXX";

这样做

request.Headers.Add(HttpRequestHeader.Authorization, "Bearer" + yourPersonalAccessToken);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多