Я успешно позвонил в остальные API, используя curl следующим образом:
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, $_POST["logInEmail"] . ":" . $_POST["logInPassword"]);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, "http://<theURL>/api/session");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
echo $result; //for testing, otherwise it would be inside a function and use return...
Тем не менее, мой рабочий проект не в php, поэтому я не могу использовать это. Я пытался с AJAX, но я получаю «Блокирован запрос на перекрестное происхождение», поэтому я должен изучить это в Razor (cshtml).
Я хотел бы знать, возможно ли вообще написать это в cshtml.
ОБНОВИТЬ:
В конце концов я заставил его работать, поэтому я опубликую код на случай, если кому-то понадобится в будущем.
string _auth = string.Format("{0}:{1}", "username","password");
string _enc = Convert.ToBase64String(Encoding.ASCII.GetBytes(_auth));
var url = "http://api url";
var client = new WebClient();
client.Headers.Add("contentType", "application/json");
client.Headers.Add("Authorization", "BASIC " + _enc);
var content = client.UploadString(url, "");
var search = Json.Decode(content);
Тогда я просто использую переменную поиска, чтобы использовать данные из ответа (в этом случае она возвращает данные пользователя и токен авторизации, и я настраиваю локальный сеанс).
Также, если кто-то может объяснить, почему это не должно быть сделано в сценарии с бритвой, это будет здорово (согласно комментарию Мортена О.К.).
Задача ещё не решена.
Других решений пока нет …