2016-05-04 25 views
1

私は、ブラウザからの直接のヒットにより、私のアプリケーションから注文リストを取得するために、Webリクエスト中にShopifyに深刻な問題に直面しています。ここShopify - Webrequest中に401エラーが発生しました。

はコードです:



    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; 
     } 

あなたは私がここで行方不明です何を提案してくださいすることができます。私が試してみました

:OAuthのAPIを介して永久access_tokenは要求される無

を実際に、私はプライベートアプリからデータを取得しています、私は多くの記事を読み、そこに見つけ、

ので、私は追加 req.Headers.Add( "X-Shopify-Access-Token"、APISecrateKey); この行ですが、私は私のために働くことができませんでした。私は同じ問題を抱えていたが、アプローチの組み合わせを試してみましたが、不注意の両方の仕事をしていた私のコードで持っていたreq.credentials(apikey,apipassword);

を追加

答えて

2

試してみます。私はそれが余分だったと思って、あなたのポストを見て、それを元に戻すことを試みるまで私のコードが壊れた理由を理解できませんでした。

私のコードは

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

テストのビットは、私はあなたのコードを変更した後、「今であり、これは働いている:

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; 
     } 
関連する問題