Kwabena Sackey Ответов: 1

Удаленный сервер вернул ошибку: (401) несанкционированный доступ.


Я пытаюсь передать данные в веб-API и получить результаты через json. Я продолжаю получать ошибку f.f.: удаленный сервер вернул ошибку: (401) несанкционированный.

Вот этот код.

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

string authInfo = "XXXXXXX" + ":" + "XXXXXXX";
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));

HttpWebRequest request =(HttpWebRequest)WebRequest.Create(@"https://elig.nhia.gov.gh:5007/api/hp/authenticate/app");
               
request.Method = "POST";
request.Accept = "application/json; charset=utf-8";                request.Headers["Authorization"] = "Basic " + authInfo;

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
     string json = new JavaScriptSerializer().Serialize(new
     {
          GhanaCardNo = "",
          UMN = membershipNoTextBox.Text
     });
                    
     streamWriter.Write(json);
     streamWriter.Flush();
     streamWriter.Close();
}

var response = (HttpWebResponse)request.GetResponse();

string strResponse = "";
using (var sr = new StreamReader(response.GetResponseStream()))
{
     strResponse = sr.ReadToEnd();
}

1 Ответов

Рейтинг:
0

TheRealSteveJudge

1) пожалуйста, никогда не публикуйте свои учетные данные для входа в систему.
2) при тестировании API с помощью Postman вы увидите сообщение об ошибке в теле ответа:

A valid API Key must be provided via x-nhia-apikey request header parameter.

Поэтому вы также должны предоставить действительный ключ API, который здесь никто не знает.
Вы должны связаться с владельцем веб-сайта, чтобы получить необходимую информацию.


Kwabena Sackey

Спасибо, что они проверяют верительные грамоты, но я понял суть. Я пересмотрел код, чтобы прочитать::

HttpWebRequest request = (HttpWebRequest)WebRequest.Создать(@"https://elig.nhia.gov.gh:5007/api/hp/authenticate/app");
запрос.Метод = "сообщение";
запрос.Accept = "application/json; charset=utf-8";

запрос.Заголовки.добавить("x-nhia-apikey", "xxxxx");
запрос.Заголовки.добавить("x-nhia-apisecret", "xxxxx");

используя (ВАР модулю записи StreamWriter = новая модулю записи StreamWriter(запрос.Метод getrequeststream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
Ганакардно = "",
УМН = membershipNoTextBox.Текст
});
модулю записи StreamWriter.Write(json);
модулю записи StreamWriter.Промывать();
модулю записи StreamWriter.Закрывать();
}

var response = (HttpWebResponse)request.GetResponse();

string strResponse = "";
using (var sr = new StreamReader(response.GetResponseStream()))
{
strResponse = sr.ReadToEnd();

}

но я все равно получаю 401 несанкционированный.

TheRealSteveJudge

Мне очень жаль, но у меня кончились идеи. Может быть, вам стоит спросить ребят, которые предоставили веб-API.