ali malaki Ответов: 1

Как сделать HTTP-запрос в C# из curl-запроса


Привет ребята
У меня есть problome для преобразования запроса curl в запрос c#; я использую RestSharp и легко использую GET-запрос, но для авторизации есть problome.
Как сделать запрос curl в c# в windows или

я хочу сделать веб-запрос с этими параметрами, и он должен получить действительный ответ

Запрос:

curl -u "publicKey:secretKey" https://MyWebsite.com/api/balance


Как сделать то же самое в c#???

Что я уже пробовал:

public async Task<dynamic> Execute(RestRequest request, bool requireAuthentication = true)
        {
            if (requireAuthentication && !IsAuthorized)
                throw new Exception("AccessTokenInvalid");

            var client = new RestClient(Url);

            if (requireAuthentication)
            {
                //request.AddParameter("apikey", _apiKey);
                //request.AddParameter("secretKey", _secretKey);
                request.Credentials = new NetworkCredential(_apiKey, _secretKey);
            }

            var response = await client.GetResponseAsync(request);

            if (response.ErrorException != null)
            {
                const string message = "Error retrieving response.  Check inner details for more info.";
                var exception = new ApplicationException(message, response.ErrorException);
                throw exception;
            }

            return new ApiResponse { Content = response.Content };
        }

1 Ответов

Рейтинг:
0

RickZeeland

Вот фрагмент сценария PowerShell, похожего на C#, который вызывает REST API.
Я получил его только после добавления пустого домена:

$username = "User"
$password = "Password"
$domain = ""

$wc = New-Object System.Net.WebClient
$wc.Credentials = new-object System.Net.NetworkCredential($username, $password, $domain)
$wc.DownloadFile($downloadUrl, $downloadFile)
Полный текст сценария вы можете найти в разделе: Возня с TeamCity REST API[^]

О Асинхронный: имейте в виду, что сразу после ожидания ваш метод вернется к вызывающему методу и что запрос еще не будет завершен, вам, возможно, придется немного подождать там ...