-3

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
4

2 に答える 2

1

一部の型のみが switch ステートメントで使用できます。そのうちの 1 つは文字列です。
switch 文の break を忘れてはいけません

switch (res1.Headers["XcT"].ToString())
{
    case "[+] ok":
       log("[+] ok");
       break;
    default: log("[-] bad");
}
于 2012-12-02T20:35:08.367 に答える
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;
}
于 2012-12-02T21:03:30.227 に答える