我在网页请求期间遇到一些严重的问题,以便从我的应用程序获取订单列表,而我可以直接点击浏览器。
这是代码:
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); 这一行,但我无法为我工作。
答案 0 :(得分:2)
尝试添加req.credentials(apikey,apipassword);
我遇到了同样的问题,但尝试了各种方法,无意中在我的代码中都有效。我认为这条线是多余的,无法弄清楚为什么我的代码坏了,直到我看到你的帖子并尝试将其添加回去。
我的代码现在是“
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;
}