Bramka XML - pobieranie dachy

0

Panowie,
podpowie ktoś jak zamienić poniższy kod PHP na klasycznego .NETa (4.7.2)? Nie bardzo ogarniam jak przekazać taką strukturę...

<pre><?php

// parametry requestu
$data  = array('client'             => 'KOD KLIENTA', 
                'login'             => 'LOGIN', 
                'pass'              => 'HASLO', 
                'req'               => 'product', 
                'pid'               => 'UKMIC290015;AKASS113043;KOTRAZT9008;121650;121974', 
                'withdesc'          => '1', 
                'ignore_missing'    => '1');

// wykonujemy request
$url        = 'https://xml.ab.pl/gateway.php';
$curl       = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$result     = curl_exec($curl);
$err        = curl_error($curl);
$errno      = intval(curl_errno($curl));
curl_close($curl);

// sprawdzamy odpowiedz
if (!$err) {
    // odpowiedz ok, request mozna parsowac
    print(htmlspecialchars($result));
} else {
    // problem CURLa z wykonaniem requestu
    var_dump($err, $errno);
}

?></pre>
1

Parametry requestu - Stwórz sobie klasę która będzie miała w sobie wszystkie te właściwości
Wykonywanie requestu - Użyj klasy HttpClient
Sprawdzanie odpowiedzi - Jest w samouczku dołączonym do HttpClient

1

Przecież ten kod który wkleiłeś nie robi nic oprócz requestu POST ;| Więc ja bym tego się nie starał "przepisać", tylko napisać po prostu od nowa request w C#.

0

.NETowcy nie znają PHP :)

1

@gswidwa1: działa przy przekazywaniu KeyValuePair jak poniżej, z obiektem wyskakiwał błąd autoryzacji, tak jakby nadmiarowo coś do parametrów trafiało. Zostawiam dla potomnych, dzięki!

var content = new FormUrlEncodedContent(new[]
{
    new KeyValuePair<string, string>("client", "abcd123"),
    new KeyValuePair<string, string>("login", "asdfsdf"),
    new KeyValuePair<string, string>("pass", "asdfafd"),
    new KeyValuePair<string, string>("req", "product"),
    new KeyValuePair<string, string>("pid", "P1B09A"),
    new KeyValuePair<string, string>("withdesc", "1"),
    new KeyValuePair<string, string>("ignore_missing", "1"),
});



var client = new HttpClient();
client.BaseAddress = new Uri("https://xml.ab.pl");

var response = await client.PostAsync(/*url*/ "/gateway.php", content /*data*/);
response.EnsureSuccessStatusCode();

string result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);

1 użytkowników online, w tym zalogowanych: 0, gości: 1