CURL POST для HttpClient - PullRequest
       13

CURL POST для HttpClient

0 голосов
/ 12 июня 2018

У меня есть следующая ссылка, предоставленная API, которая должна использоваться для получения токена аутентификации:

curl -d "client=YourAppName&accountType=HOSTED_OR_GOOGLE&service=reader&Email=test@krasnoukhov.com&Passwd=..." https://theoldreader.com/accounts/ClientLogin

Когда я вхожу, введите эту строку в консоль Linux (очевидно, с моими собственными учетными данными), я получаюожидаемый результат:

SID=none
LSID=none
Auth=AnyKindOfKey12345

Но мне нужно использовать это в C #, поэтому я попытался использовать класс HttpClient следующим образом:

var client = new HttpClient();
string url = "https://theoldreader.com/accounts/ClientLogin";
string request = "client=YourAppName&accountType=HOSTED_OR_GOOGLE&service=reader&Email=test@krasnoukhov.com&Passwd=...";
var response = await client.PostAsync(url, new StringContent(request));

Но я получаю код состояния "403 -Запрещено "каждый раз.Чего мне не хватает?Я попытался установить кодировку StringContent в UTF-8 или ASCII, но без изменений.

1 Ответ

0 голосов
/ 13 июня 2018

Как насчет того, чтобы попробовать что-то подобное?Я не думаю, что то, как вы сейчас делаете это правильно.

        string url = "https://theoldreader.com/accounts/ClientLogin";
        var client = new HttpClient();

        var urlData = new List<KeyValuePair<string, string>>
        {
            new KeyValuePair<string, string>("client", "YourAppName"),
            new KeyValuePair<string, string>("accountType", "HOSTED_OR_GOOGLE"),
            new KeyValuePair<string, string>("service", "reader"),
            new KeyValuePair<string, string>("Email", "test@krasnoukhov.com"),
            new KeyValuePair<string, string>("Passwd", "pancakes")
        };

        var request = new HttpRequestMessage(HttpMethod.Post, url) { Content = new FormUrlEncodedContent(urlData) };

        var res = await client.SendAsync(request);
...