2016-05-04 6 views
1

Ich stehe mit ernsthaften Problem mit Shopify während Web-Anfrage, um Bestellliste von meiner Anwendung zu erhalten, während ich mit Direkttreffer auf Browser in Ordnung bin.Shopify - 401 Fehler während Webrequest

hier ist der Code:



    private const string APIKey = "[DELETED]"; 
     private const string APIPassword = "[DELETED]"; 
     private const string APISecrateKey = "[DELETED]"; 
     private const string StoreName = "epronto-2"; 
     private const string OrderURL = "https://" + APIKey + ":" + APIPassword + "@" + StoreName + ".myshopify.com/admin/orders.json"; 
     public string gethttpResponse(){ 
      HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 
      req.Method = "GET"; 
      req.ContentType = "application/json"; 
      req.Headers.Add("X-Shopify-Access-Token", APISecrateKey); 
      string text = string.Empty; 
      try{ 
       var response = (HttpWebResponse)req.GetResponse(); 
       using (var sr = new StreamReader(response.GetResponseStream())) 
       { 
        text = sr.ReadToEnd(); 
       } 
      } 
      catch{} 
      return text; 
     } 

können Sie bitte vorschlagen, was ich hier fehlt.

Was ich versucht habe:

tatsächlich, erhalte ich Daten aus dem privaten App, ich lese viele Artikel und fand dort keine für permanente access_token via OAuth API erforderlich ist,

so habe ich req.Headers.Add ("X-Shopify-Access-Token", APISecrateKey); diese Linie, aber ich konnte nicht für mich arbeiten.

Antwort

2

Versuchen Sie, req.credentials(apikey,apipassword);

ich das gleiche Problem hatte, aber hatte eine Mischung von Ansätzen versucht und hatte versehentlich beide in meinem Code, das funktioniert. Ich nahm diese Zeile und dachte, es sei überflüssig und konnte nicht herausfinden, warum mein Code brach, bis ich deinen Beitrag sah und versuchte, ihn wieder hinzuzufügen.

mein Code ist jetzt“

WebRequest OrderRequest = WebRequest.Create("<url like you build>"); 
    OrderRequest.Credentials = new NetworkCredential"APIKEY", "APIpassword"); 
    response = (HttpWebResponse)OrderRequest.GetResponse(); 

nach ein wenig getestet, ich Ihren Code geändert und dies funktioniert:

public static string gethttpResponse(Uri url) 
     { 
      HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 
      req.Method = "GET"; 
      req.ContentType = "application/json"; 
      //req.Headers.Add("X-Shopify-Access-Token", APISecrateKey); 
      req.Credentials = new NetworkCredential(APIKey, APIPassword); 
      string text = string.Empty; 
      try 
      { 
       var response = (HttpWebResponse)req.GetResponse(); 
       using (var sr = new StreamReader(response.GetResponseStream())) 
       { 
        text = sr.ReadToEnd(); 
       } 
      } 
      catch (Exception a) 
      { 
       Utility.LogMessage(a.ToString()); 
      } 
      return text; 
     }