Saya mencoba untuk mendapatkan nomor kode status HTTP dari HttpWebResponse
objek yang dikembalikan dari a HttpWebRequest
. Saya berharap mendapatkan angka sebenarnya (200, 301.302, 404, dll.) Daripada deskripsi teks. ("Ok", "MovedPermanently", dll.) Apakah nomor itu terkubur di properti di suatu tempat di objek respons? Adakah ide selain membuat fungsi sakelar besar? Terima kasih.
HttpWebRequest webRequest = (HttpWebRequest)WebRequest
.Create("http://www.gooogle.com/");
webRequest.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
//Returns "MovedPermanently", not 301 which is what I want.
Console.Write(response.StatusCode.ToString());
c#
.net
http
httpwebrequest
James Lawruk
sumber
sumber
Jawaban:
HttpStatusCode (tipe
response.StatusCode
) adalah enumerasi di mana nilai-nilai anggota cocok dengan kode status HTTP, misalnyasumber
bool success = ((int)response.StatusCode) >= 200 && ((int)response.StatusCode) < 300;
Anda harus berhati-hati, respons server dalam kisaran 4xx dan 5xx melempar WebException. Anda perlu menangkapnya, dan kemudian mendapatkan kode status dari objek WebException:
sumber
Sesuai 'dtb' Anda perlu menggunakan HttpStatusCode, tetapi mengikuti 'zeldi' Anda harus ekstra hati-hati dengan respons kode> = 400.
Ini berhasil bagi saya:
sumber
Paksa saja
StatusCode
keint
.sumber
sumber