2016-07-22 5 views
0

Ich versuche, die Umleitungs-URL mit den Header zu finden, so dass ich gegoogelt um und fand ein paar Beispiele:Erste umleiten Link mit Httpclient Post

Header[] arr = httpResponse.getHeaders("Location"); 
for (Header head : arr){ 
    String whatever = arr.getValue(); 
} 

UND

HttpPost request1 = new HttpPost("https://hrlink.healthnet.com/"); 
HttpResponse response1 = httpclient.execute(request1); 

// expect a 302 response. 
if (response1.getStatusLine().getStatusCode() == 302) { 
    String redirectURL = response1.getFirstHeader("Location").getValue(); 

    // no auto-redirecting at client side, need manual send the request. 
    HttpGet request2 = new HttpGet(redirectURL); 
    HttpResponse response2 = httpclient.execute(request2); 

    ... ... 
} 

Wo sie bekommen "Location" aus Header, aber ich bin nicht in der Lage, die "Location" aus der HttpResponseMessage aus meiner Version zu ziehen, habe ich versucht, Dinge hier und da zu verschieben, aber es enthält nicht die Methode, um den Parameter zu akzeptieren, wie kann ich bekommen die Umleitungs-URL mit httpClient?

var client = new HttpClient(); 

var pairs = new List<KeyValuePair<string, string>> 
{ 
    new KeyValuePair<string, string>("username", "---"), 
    new KeyValuePair<string, string>("password", "---") 
}; 

var content = new FormUrlEncodedContent(pairs); 

var response = client.PostAsync(uri, content).Result; 


HttpHeaders headerlist = response.Headers; 

foreach (var header in headerlist) 
{ 
    //Red line on header("Location") 
    label1.Text += header("Location") + "\n"; 
} 
+0

Set AllowAutoRedirect auf false: https://msdn.microsoft.com/en-us/library/system .net.httpwebrequest.allowautoredirect (v = vs.110) .aspx dann können Sie "Location" finden –

+0

@x ... Wie bekomme ich "Location" von HttpWebResponse? –

+1

HttpWebResponse.Headers: https://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers(v=vs.110).aspx –

Antwort

0

Just for Test, mit www.google.com können Sie testen, Umleitung:

var request = (HttpWebRequest) WebRequest.Create("http://www.google.com"); 
    request.AllowAutoRedirect = false; 
    using (var response = (HttpWebResponse) request.GetResponse()) 
    { 
    string location = response.Headers["Location"]; 
    Console.WriteLine(location); 
    }