C# Shopify私有应用程序API URL可以在浏览器中工作,但不能在使用c的API调用中工作#

C# Shopify私有应用程序API URL可以在浏览器中工作,但不能在使用c的API调用中工作#,c#,api,shopify,C#,Api,Shopify,我正在使用shopify私有应用程序API URL,它可以在浏览器中工作,但不能在API调用中工作。我收到{“远程服务器返回错误:(401)未经授权。”} 使用(var client=new WebClient()) { var values=新的NameValueCollection(); var-begin=DateTime.Now.AddDays(-30).ToString(“yyyy-MM-dd-HH:MM”); client.Headers.Add(值); var response=c

我正在使用shopify私有应用程序API URL,它可以在浏览器中工作,但不能在API调用中工作。我收到
{“远程服务器返回错误:(401)未经授权。”}

使用(var client=new WebClient())
{
var values=新的NameValueCollection();
var-begin=DateTime.Now.AddDays(-30).ToString(“yyyy-MM-dd-HH:MM”);
client.Headers.Add(值);
var response=client.DownloadString(string.Format(“https://xxxx:xxxxx@com/admin/orders.json);
orders=JsonConvert.DeserializeObject(响应);
}

如果有人有主意,请帮忙。提前感谢。

如果您的商店有任何类型的重定向,则基于URL的身份验证将被剥离,因此需要在请求的标头中传递API密码。尝试添加:

client.Headers.Add(“X-Shopify-Access-Token”,你的API秘密);

因为我假定您正在使用
构建查询字符串。

该API的身份验证方案是什么样的?您很可能需要传入密钥(如果它使用OAuth)或实际凭据。在shopify中,URL中同时包含API密钥和密码,因此我认为无需进行身份验证。请尝试通过标头数据而不是URL中传递apikey和API_密码。
using (var client = new WebClient())
            {
                var values = new NameValueCollection();
                var since = DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd HH:mm");
                client.Headers.Add(values);
               var response = client.DownloadString(string.Format("https://xxxx:xxxxx@abc.myshopify.com/admin/orders.json"));

                orders = JsonConvert.DeserializeObject<ShopifyApiObjects.SalesOrders>(response);
            }