Frage

Wir haben einen Flash-Entwickler, der verwendet ruft eine Datei namens proxy.php mit dem Abfragezeichenfolgeflag url = „http: // Feedburner / was auch immer“? Für den Zugriff externe Daten aus RSS-Feeds von Domänen, die standardmäßig nicht zugänglich von swf-Code. zum Beispiel die folgende im Browser habe ich könnte: http: //localhost/proxy.php ? url = feedburner.com / a_feed und der Browser würde die Seite angezeigt wird, als ob ich in der Browser-Adressleiste direkt die Feedburner-uRL setzen würde. Der PHP-Code in dieser proxy.php Datei ist unten.

$header[] = "Content-type: text/xml";
$header[] = "Content-length: ".strlen($post_data);

$ch = curl_init( $_GET['url'] ); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

if ( strlen($post_data)>0 ){
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
}

$response = curl_exec($ch);     

if (curl_errno($ch)) {
    print curl_error($ch);
} else {
    curl_close($ch);
    //$response=split("iso-8859-2",$response);
    //$response=join("UTF-8",$response);
    print $response;
}

Es funktioniert gut, aber wegen der Hosting-Einschränkungen müssen wir die Funktionalität in asp.net replizieren. Ich weiß nicht, PHP und trotz der Bemühungen, den Code ich kläglich versagt habe zu verstehen. Ich muss in der Lage sein die doppelte die Funktionalität, die ich mit asp.net im ersten Absatz beschrieben, aber trotz googeln und eine Technik, mit XmlTextWriter in einer Ashx Datei versucht, ich gescheitert. Was bin ich hier?

Ich vermute, eine response.redirect würde nicht funktionieren, da es die Quelle der externen Domäne zu gehen sagt selbst, und wir wollen, dass vermeiden.

Wie kann ich die PHP-Code-Funktionalität in ASP.NET erreichen?

War es hilfreich?

Lösung

Alles, was er tut, ist ROTATION Aufruf, die ein HTTP-Client ist (unter anderem) die Datei herunterzuladen dann Streaming über die Antwort aus. Sie können die Funktionalität replizieren, indem httpwebrequest aufrufen. Es gibt ein Tutorial hier:

http://support.microsoft.com/kb/303436

Andere Tipps

Im Fall würde jemand einen Code-Schnipsel mag, Basierend auf diesem Link ich den Code geschrieben unten und es tut nur der Trick (offensichtlich hart jetzt codiert es aber hey ...):

protected void Page_Load(object sender, EventArgs e)
{
    string URL = "http://feeds2.feedburner.com/the-foreigner";
    HttpWebRequest HttpWRequest = (HttpWebRequest)WebRequest.Create(URL);
    HttpWebResponse HttpWResponse = (HttpWebResponse)HttpWRequest.GetResponse();

    //Read the raw HTML from the request
    StreamReader sr = new StreamReader(HttpWResponse.GetResponseStream(), Encoding.ASCII);
    //Convert the stream to a string
    string s = sr.ReadToEnd();
    sr.Close();
    Response.Write(s); 
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top