尝试使用HttpClient在c#中登录instagram

尝试使用HttpClient在c#中登录instagram,c#,.net,windows-phone-8,instagram,dotnet-httpclient,C#,.net,Windows Phone 8,Instagram,Dotnet Httpclient,我正在尝试使用httpclient库登录instagram。我可以获得和发布请求,但每次我收到403禁止状态。 最初,我请求获取csrfmiddlewaretoken唯一令牌,instagram使用该令牌进行跨站点请求伪造,代码如下 HttpClient httpClient = new HttpClient(); string CSRFtoken = ""; try { CookieContainer cookies =

我正在尝试使用httpclient库登录instagram。我可以获得和发布请求,但每次我收到403禁止状态。 最初,我请求获取csrfmiddlewaretoken唯一令牌,instagram使用该令牌进行跨站点请求伪造,代码如下

HttpClient httpClient = new HttpClient();
        string CSRFtoken = "";
        try
        {
            CookieContainer cookies = new CookieContainer();
            cookies.Add(new Uri("https://instagram.com"), new Cookie("csrfmiddlewaretoken", CSRFtoken));
            string pagedata = await httpClient.GetStringAsync(loginURL);
            string pattern = @"csrfmiddlewaretoken""\svalue=""(.+)""";
            var r = new System.Text.RegularExpressions.Regex(pattern);
            var m = r.Match(pagedata);
            CSRFtoken = m.Groups[1].Value;
        }catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
之后,我通过发送csfrtoken、用户名和密码来发出post请求 借

var postData=newlist();
添加(新的KeyValuePair(“csrfmiddlewaretoken”,CSRFtoken));
添加(新的KeyValuePair(“用户名”、“abcdefg”);
添加(新的KeyValuePair(“密码”,“1234567”);
HttpClient=新的HttpClient();
尝试
{
HttpResponseMessage response=wait client.PostAsync(loginURL,新表单urlencodedcontent(postData));
response.EnsureSuccessStatusCode();
var responseString=await response.Content.ReadAsStringAsync();
MessageBox.Show(responseString);
}捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
我已经在这里和msdn网站上阅读了答案,但没有得到任何工作结果。
也尝试过此解决方案

您尝试过InstaSharp吗?就我而言,这是一个很棒的库。我知道Instasharp wrapper,但它没有任何登录功能。
var postData = new List<KeyValuePair<string, string>>();
        postData.Add(new KeyValuePair<string, string>("csrfmiddlewaretoken", CSRFtoken));
        postData.Add(new KeyValuePair<string, string>("username", "abcdefg"));
        postData.Add(new KeyValuePair<string, string>("password", "1234567"));
        HttpClient client = new HttpClient();
        try
        {
            HttpResponseMessage response = await client.PostAsync(loginURL, new FormUrlEncodedContent(postData));
            response.EnsureSuccessStatusCode();
            var responseString = await response.Content.ReadAsStringAsync();
            MessageBox.Show(responseString);
        }catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }