Как сделать POST-запрос на токен авторизации из API Filemaker в c # - PullRequest
0 голосов
/ 26 июня 2019

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

Я пробовал это в Java. Сейчас я пытаюсь это сделать в c # .NET Framework 4.6.1

private static void GetToken(string username, string password)
{
    try
    {
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://exchange.furniflair.com/fmi/data/v1/databases/FurniflairDB/sessions");
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";
        var bytes = Encoding.UTF8.GetBytes("dataapi:Data4me");
        string temp =  Convert.ToBase64String(bytes);
        httpWebRequest.Headers.Add("Authorization", "Basic ZGF0YWFwaTpEYXRhNG1l");
        string token;
        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
             streamWriter.Flush();
        }
        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            token = streamReader.ReadToEnd();
        }
    }
    catch (WebException ex){}
}

Я ожидаю, что вывод будет маркером авторизации в ответ, но я получаю только исключения, такие как httpWebException.

1 Ответ

0 голосов
/ 27 июня 2019

Если это поможет вам правильно установить заголовки, вот пример, который работает с использованием PHP.

$Post_Json = '{}';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_PORT,443);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $Post_Json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);

Это происходит от: https://schwarzsoftware.com.au/blogentry.php?id=19 Также убедитесь, что Data API включен в консоли сервера FileMaker Admin и включен для файла FileMaker, к которому вы пытаетесь получить доступ, и получите права доступа, включенные для этого пользователя в файле FileMaker.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...