Ich hoffe, dass ich hier richtig bin mit dem Thema.
Wie im Titel schon steht, will ich mehrere PHP-Files in C#-Files umschreiben.
Da ich ein Anfänger in PHP wie auch in C# bin, brauche ich eure Hilfe.
Es geht darum, dass ich mit den PHP-Files Daten aus einer Webbasierten Buchhaltungssoftware erhalte und diese via VBScript-Schnittstelle in die Datenbank lokale Datenbank einer anderen Buchhaltungssoftware importiere.
Die PHP-Files:
Die Files nutzen cUrl und oAuth 2.0 um eine REST API anzuzapfen um mir die gewünschten Daten zuliefern.
Diese Daten werden als HTML-Seite dargestellt.
Mein Ziel ist es, diese Daten in variablen zu speichern damit ich die Daten der VBScript-Schnittstelle übergeben kann.
Da für mich eine grafische Darstellung via HTML-Seite nicht wichtig ist, würde ich gerne diese Aufgabe als C#-Konsolenanwendung realisieren.
Damit ich mir irgendwie vorstellen kann, wie solch eine Konvertierung aussehen muss, wäre ich froh wenn Ihr mir helfen könntet.
Im Anhang findet Ihr eines dieser PHP-Files. Anhang entfernt und als Code eingefügt - Coffeebean
<?php
class Curl {
const METHOD_GET = 'GET';
const METHOD_POST = 'POST';
const METHOD_PUT = 'PUT';
const METHOD_DELETE = 'DELETE';
const CURL_TIMEOUT_IN_SECS = 15;
public static $successFullHttpCodes = array(200, 201, 204);
public function call($url, $urlParams = array(), $postParams = null, $method = self::METHOD_GET, $headers = array()) {
$finalUrl = $url . $this->getUrlParameterString($urlParams);
$data = $this->makeCurlCall($finalUrl, $postParams, $method, $headers);
return $data;
}
private function makeCurlCall($url, $postParams = array(), $method = self::METHOD_GET, $headers = array()) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_TIMEOUT, self::CURL_TIMEOUT_IN_SECS);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
if ($headers) {
$usableHeaders = array();
foreach ($headers as $name => $value) {
$usableHeaders[] = sprintf('%s: %s', $name, $value);
}
curl_setopt($curl, CURLOPT_HTTPHEADER, $usableHeaders);
}
if ($postParams) {
curl_setopt($curl, CURLOPT_POSTFIELDS, $postParams);
}
$data = curl_exec($curl);
$this->checkForError($curl, $data);
return $data;
}
private function checkForError($curl, $data) {
$curlInfo = curl_getinfo($curl);
if (isset($curlInfo['http_code']) && !in_array($curlInfo['http_code'], self::$successFullHttpCodes)) {
throw new Exception($curlInfo['http_code'] ? $data : 'could not get a response from the service', $curlInfo['http_code'] ? $curlInfo['http_code'] : 500);
}
}
private function getUrlParameterString(array $urlParams) {
if (!$urlParams) {
return "";
}
return "?" . http_build_query($urlParams);
}
}
?>
Vielen Dank
Gruss
Ovoxo