我无法在c#中将变量添加到WebRequest中

时间:2017-04-28 21:14:32

标签: c# httpwebrequest

我正在尝试在c#console中执行像sociall.net这样的搜索应用程序。

我的目的是,我将从用户那里获得姓名,我的申请将在Google上搜索此姓名。

我试过这段代码:

        Console.WriteLine("What's your name?.");
        string name;
        name = Console.ReadLine();
        string surname;
        Console.WriteLine("What's your surname?");
        surname = Console.ReadLine();
        string site;
        site = "Http://google.com=q'name'+'surname'";

        WebRequest talep = HttpWebRequest.Create(site);
        WebResponse cevap = talep.GetResponse();
        StreamReader oku = new StreamReader(cevap.GetResponseStream());
        string Kodlar = oku.ReadToEnd();
        int baslangic = Kodlar.IndexOf("<p>") + 4;
        int bitis = Kodlar.Substring(baslangic).IndexOf("</p>");

        Console.WriteLine(Kodlar.Substring(baslangic, bitis));
        Console.Read();

但我收到一条错误信息:

An unhandled exception of type 'System.UriFormatException' occurred in System.dll

我能为自己的梦想做些什么? :)

1 个答案:

答案 0 :(得分:1)

我相信它试图告诉您的是您的网址无效。

您在控制台中捕获姓名和姓氏看起来是正确的,但在构建网址时不会评估变量。

我认为不是:

site = "Http://google.com=q'name'+'surname'";

你应该尝试:

site = String.Format("https://www.google.com/?q={0}+{1}", name, surname);

以下内容也应该有效:

site = String.Format("https://www.google.com/#q={0}+{1}", name, surname);

String.Format是将变量值插入字符串的有用方法。 当然,如果您不想使用它,您也可以使用基本表格,如下所示:

site = "https://www.google.com/#q=" + name + "+" + surname;