Разрешение соединения для связи с моим .NET Restful API - PullRequest
0 голосов
/ 05 октября 2019

Итак, я создаю RESTFUL API с использованием .NET Framework. Тем не менее, я зашел в тупик, потому что в соединениях отказывают. Он отклоняет самозаверяющие сертификаты.

Итак, я использую горячую точку (чтобы я мог проверить несколько соединений), где мой телефон пытается подключиться к API. Это отклонено. У меня есть Unity, пытающаяся подключиться с того же устройства, на котором работает сервер API, ему отказывают. Я использую почтальон в локальной системе, мне отказывают. Если я отключу сертификат SSL в почтальоне ... хуза, это работает! Однако мне это не нравится. Или, может быть, я не совсем понимаю, как правильно это настроить.

Я использую готовый API .NET предоставляет вам некоторые штрихи:

// GET api/values
[HttpGet]
public ActionResult<Player> Get()
 {
   Player player = new Player
   {
     Id = 1,
     Name = "Bloodmorphed"
    };
    return player;
 }

Теперь в Unity (поскольку это действительно единственный код, который я написал для получения данных):

using System.Collections;
using System.Collections.Generic;
using System;
using UnityEngine;
using UnityEngine.Networking;
using System.Net;

public class CallAPI : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine(GetUnityWebRequest());
    }

    IEnumerator GetUnityWebRequest()
    {
        UnityWebRequest request = UnityWebRequest.Get("https://localhost:44305/api/values");
        yield return request.SendWebRequest();
        if (request.isHttpError)
        {
            Debug.Log("HTTP Error: " + request.error);
        }
        else if (request.isNetworkError)
        {
            Debug.Log("Network Error: " + request.error);
        }
        else if (request.error != null)
        {
            Debug.Log("Other Error: " + request.error);
        }
        else
        {
            Debug.Log(request.downloadHandler.text);
        }
    }
}

Теперь, с Unity, он выдаст ошибку сети, но скажет «Неизвестная ошибка». Я могу заставить его не использовать самозаверяющий сертификат, но я думаю, что это было бы лучше для фиксированной серверной стороны, а не клиентской.

Итак: он работает в локальном браузере, но не работает на удаленном браузере, нов той же сети (я знаю, это подключиться, как я делал это раньше ... его отклонение подключения). Он будет работать на почтальоне, если я отключу сертификат SSL. Я немного растерялся.

1 Ответ

0 голосов
/ 05 октября 2019

Вы пытаетесь вызвать URL-адрес httpS, когда в dev было бы лучше вызвать URL-адрес http (no S). Если вы работаете со своим приложением, подумайте о переходе на шифрованную связь, но использование защищенной версии http (https) немного излишне для локального тестирования

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