1

我试图这样称呼shopify:

HttpClient.GetAsync(https://---apikey---:---password---@---shop---.myshopify.com/admin/orders.xml)

但我不断收到未经授权的 401 结果。当我在 chrome 中测试 uri 时它工作正常,所以我认为 HttpClient 不知何故无法处理 shopify 需要的 url 中嵌入的身份验证数据。

anyboy 机构是否知道如何使用新的 .NEt 4.5 HttpClient 来做到这一点?

4

2 回答 2

3

您可以尝试创建一个 HttpClientHandler 实例并创建一个 Credentials 实例并在您的 HttpClient 中使用它,如下所示;

            var clientHandler = new HttpClientHandler
                                    {
                                        Credentials = new NetworkCredential("Username", "Password"),
                                        PreAuthenticate = true
                                    };

            var httpClient = new HttpClient(clientHandler);

            var responseMessage = httpClient.GetAsync("http://url").Result;

在这种情况下,您不需要在 URI 中传递用户名@密码。

于 2012-11-21T12:44:11.433 回答
1

克里斯的回答是绝对的。

如果您还对使用 .NET 使用 Shopify API 的更巧妙方式感到好奇,请查看 Shopify 的官方 .NET 适配器:https ://github.com/cmcdonaldca/shopify.net

于 2012-11-24T23:14:02.653 回答