PHP to C# - Frage zu HttpWebRequest

16/08/2008 - 19:54 von Roland Schumacher | Report spam
Hallo

Ich versuche ein Stück Code aus PHP nach C# zu bringen. Es geht um eine GET
Abfrage an eine Webresource.

Das Query in PHP sieht so aus.
[...]
$request = "GET /external/external_info/"
. "?website_key" . "=" . $dx_website_key
. "&dx_secret" . "=" . $dx_secret
. "&method" . "=" . $dx_method
. "&plugin_language" . "=" . urlencode(dx_PLUGIN_LANGUAGE)
. "&plugin_version" . "=" . urlencode(dx_PLUGIN_VERSION)
. "&plugin_date" . "=" . urlencode(dx_PLUGIN_DATE)
. "&cms_info" . "=" . $cms_info_encoded
. " "
. "HTTP/1.0"
. "Host: " . $server_host . ""
. "Connection: Close"
. ""
. "";
[...]

Meine Lösung zur Zeit sieht etwa so aus.

[...] Abfragestring
string request = "external/external_info/"
+ "?website_key=" + dx_WEBSITE_KEY_BASE
+ "&dx_secret=" + dx_PLUGIN_SECRET_BASE
+ "&method=" + "current_plugin_version"
+ "&plugin_language=" + HttpUtility.UrlEncode(dx_PLUGIN_LANGUAGE)
+ "&plugin_version=" + HttpUtility.UrlEncode(dx_PLUGIN_VERSION)
+ "&plugin_date=" + HttpUtility.UrlEncode(dx_PLUGIN_DATE)
+ "&cms_info=";
[...]

message ist der String von oben. Server host ist etwas in der Form hier.
http://www.server.com/
[...]
private string GetPageContent(string serverHost, string message)
{
string ret = string.Empty;
HttpWebRequest request = null;
WebResponse response = null;
StreamReader str = null;

try
{
request = (HttpWebRequest)WebRequest.Create(serverHost + message);
request.Method = "GET";

request.Timeout = dx_DATA_TIMEOUT;

response = request.GetResponse();

Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
str = new StreamReader(response.GetResponseStream(), encode);

ret = str.ReadToEnd();
}
catch (Exception ex)
{
string error = "Fehler bei der GetPageContent<br /><br />" +
ex.ToString() + "<br /><br />" + ex.StackTrace;
actualPage.LoggingService.AddEvent(new EventDataItem(EventCodes.Error,
error, string.Empty));
}
finally
{
response.Close();
}

return ret;
}
[...]

Meine Fragen nun.

1. Ist das der richtige Ansatz?
2. Wie oder was ist das hier? Wie löse ich das mit C#?
. "HTTP/1.0"
. "Host: " . $server_host . ""
. "Connection: Close"
. ""
. "";


Gurss
Roland Schumacher
http://blog.geniali.ch/
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
16/08/2008 - 22:08 | Warnen spam
Hallo Roland,

"Roland Schumacher" schrieb:

1. Ist das der richtige Ansatz?



kommt drauf an :) Soweit siehts eigentlich Ok aus.

2. Wie oder was ist das hier? Wie löse ich das mit C#?
. "HTTP/1.0"
. "Host: " . $server_host . ""
. "Connection: Close"
. ""



request.ProtocolVersion = new Version( 1, 0 );
request.KeepAlive = false;

Der Hostname wird normalerweise automatisch anhand der Adresse gesetzt. Siehe
dazu auch:

http://msdn.microsoft.com/de-de/lib...aders.aspx

Zu den anderen Sachen auch:

http://msdn.microsoft.com/de-de/lib...ction.aspx
http://msdn.microsoft.com/de-de/lib...alive.aspx
...

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen