我发送Get请求到网站,并根据我必须做的回应smthng。
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.site.ru/sfdcsfs/");
req.AllowAutoRedirect = false;
req.Method = "GET";
req.CookieContainer = cookies;
req.UserAgent = "Opera/9.80 (Windows 7; U; en) Presto/2.9.168 Version/11.50";
req.ContentType = "application/x-www-form-urlencoded";
res1 = (HttpWebResponse)req.GetResponse();
res1.Close();
switch (res1)
{
case res1.Headers["XcT"]: log("[+] ok");
case res1.Headers["Location"].Contains("alreadymember"): log("[-] alreadymember");
default: log("[-] bad");
}
但我有错误
Error 1 A switch expression or case label must be a bool, char, string, integral, enum, or corresponding nullable type C:\Users\asus\documents\visual studio 2010\Projects\OdGP\OdGP\Form1.cs 195 29 OdGP
答案 0 :(得分:1)
在switch语句中只能使用某些类型,其中一种是字符串。
你不应该忘记switch语句中的中断
switch (res1.Headers["XcT"].ToString())
{
case "[+] ok":
log("[+] ok");
break;
default: log("[-] bad");
}
答案 1 :(得分:0)
我建议你阅读switch语句的文档,因为这里有几个错误。
您的切换表达式res1
的类型为HttpWebResponse
,如错误所示,不允许这样做。
case
标签必须是编译时常量,不允许使用res1.Headers["XcT"]
之类的任意表达式。
不允许在标签之间摔倒。所有案例标签(以及default
标签)必须包含break
,return
或抛出异常。此规则的例外是您可能有多个标签执行相同的语句块,如下所示:
int i = 0;
switch (i)
{
case 0:
case 1:
Console.WriteLine(i); break;
default: break;
}