简体   繁体   English

使用用户名和密码获取Json

[英]getting Json with username and password

In a win App I want to get a Json from a url with a username and password and show the Json in a richTextBox.I use the below code but the "myMethod()" method is waiting all the time?! 在Win App中,我想从带有用户名和密码的URL中获取一个Json,并在richTextBox中显示该Json。我使用下面的代码,但是“ myMethod()”方法一直在等待吗? what's wrong in my code? 我的代码有什么问题? I use .net 4.5 thank you ... 我用.net 4.5谢谢...

async static Task<dynamic> myMethod()
        {
            NetworkCredential credentials = new NetworkCredential("username", "password");
            var handler = new HttpClientHandler { Credentials = credentials, AllowAutoRedirect = true };
            HttpClient client = new HttpClient(handler);
            client.DefaultRequestHeaders.Add("User-Agent" ,"Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12");
            var responseString = await client.GetStringAsync("http://myURL.php");
            dynamic stuff = Newtonsoft.Json.JsonConvert.DeserializeObject(responseString
            return stuff ;        }
 private void button2_Click(object sender, EventArgs e)
        {
            dynamic d=myMethod().Result;
            richTextBox1.Text = d.ToString();
        }

You may want to change your button2_click method as following: 您可能需要按以下方式更改button2_click方法:

 private async void button2_Click(object sender, EventArgs e)
{
    dynamic d= await myMethod();
    richTextBox1.Text = d.ToString();
}

or change 或改变

await client.GetStringAsync("http://myURL.php");

to

client.GetStringAsync("http://myURL.php").Result;

It Works: 有用:

string URI = "http://url.php";
        string myParameters = "username=myUsername&password=myPassword";
        using (WebClient wc = new WebClient())
        {
            wc.Headers[HttpRequestHeader.ContentType] =
            "application/x-www-form-urlencoded";
            string HtmlResult = wc.UploadString(URI, myParameters);
            dynamic stuff1 = Newtonsoft.Json.JsonConvert.DeserializeObject(HtmlResult);
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM