WebRequest
kullanma WebRequest Ben302 yanıtını nasıl kontrol ederim?
olsun bilmek istiyorum otomatik olarak yeni url almak ve
tepki yerine "302 geçici taşındı".
WebRequest
kullanma WebRequest Ben302 yanıtını nasıl kontrol ederim?
olsun bilmek istiyorum otomatik olarak yeni url almak ve
tepki yerine "302 geçici taşındı".
olmalıdır:
HttpWebRequest request = WebRequest.Create(someUrl) as HttpWebRequest;
request.AllowAutoRedirect = false;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
if (response.StatusCode == HttpStatusCode.Redirect ||
response.StatusCode == HttpStatusCode.MovedPermanently)
{
// Do something here...
string newUrl = response.Headers["Location"];
}
Bunu kendim doğrulamadım, ancak bir şey buldum: "HttpWebRequest.AllowAutoRedirect özelliği" false, HttpStatusCode.Found, bir istisnanın atılmasına neden olur. " Kaynak: http://www1.cs.columbia.edu/~lok/csharp/refdocs/System.Net/types/HttpStatusCode.htm –
@Nathan: HttpStatusCode bir enum olduğu için gerçekten nasıl görmüyorum. Bağlı belgelerin ('.html' BTW içinde bitmesi gerekiyor) güncelliğini yitirmiş gibi görünüyor; Bu cümle muhtemelen kesme ve yapıştırma hatasıydı. – devstuff
BTW, HttpStatusCode.Redirect'i (302 için başka bir diğer ad) kullanabilirsiniz, bu da biraz daha açık. – devstuff
böylece gibisin: yerine otomatik false
için AllowAutoRedirect
özelliği WebRequest
oluşturmak ve set aşağıdakilerden bir yönlendirme yanıtı saptamak istiyorsanız
HttpWebResponse response;
int code = (int) response.StatusCode;
kod
HttpStatusCode.TemporaryRedirect
HttpStatusCode.TemporaryRedirect bir 307'dir. Http://www1.cs.columbia.edu/~lok/csharp/refdocs/System.Net/types/HttpStatusCode.html#TemporaryRedirect –
Şimdi yanıt kodunu görebilirim, ancak yine de yönlendirir ve bana 'Tamam' verir –
@Nathan Taylor: CURL'nin curl -I "url" kullanarak bana verdiği şeyi kopyaladım/yapıştırdım –
VB Net Cod e
Function GetRealUrl(someUrl As String) As String
Dim req As HttpWebRequest = TryCast(WebRequest.Create(someUrl), HttpWebRequest)
req.AllowAutoRedirect = False
Dim response As HttpWebResponse = TryCast(req.GetResponse(), HttpWebResponse)
If response.StatusCode = HttpStatusCode.Redirect OrElse response.StatusCode = HttpStatusCode.MovedPermanently Then
' Do something...
Dim newUrl As String = response.Headers("Location")
getrealurl = newUrl
Else
getrealurl = someUrl
End If
End Function
.NET için? Java? MSX? –
WebRequest bir .NET sınıftır. – jimyi
Aslında etiketler kodla ilgili her şeyi söylüyor. – Tarik