LearnUPON - я получаю 404 ответ при вызове моего API вставки - PullRequest
0 голосов
/ 22 мая 2019

Я собираюсь внедрить Learn Upon API в мое приложение .NET MVC, они дали cURL, и я должен преобразовать эти cURL URL в веб-запрос на C # для получения или отправки данных стороннему серверу Learn Upon API. в том, что API листинга, API удаления работал нормально, но API Create & Update всегда возвращает Удаленный сервер возвратил ошибку: (404) Not Found.

образец cURL, предоставленный Learn Upon:

curl -X POST -H "Content-Type: application/json" --user 988d4f1313f881e5ac6bfdfc7f54244aab : 905a12r3a0c -d '{"User": {"last_name" : "Upon",
"first_name" : "Learn", "email" : "learnuponapi@samplelearningco.com", "password" : "password1", "language" : "en", "membership_type" : "Member"
}}' https://yourdomain.learnupon.com/api/v1/users

Как указано выше, cURL, я написал ниже вызов веб-запроса для вызовов API, и этот шаблон работал в API Listing / Delete.

  1. POST Модель:
{
  "first_name": "Krishna",
  "last_name": "Patel",
  "email": "krishna.patel@c-metric.com",
  "password": "1234567890",
  "language": "en",
  "membership_type": "Member",
  "username":"krishna.patel"
}
  1. Создать код API:
 [System.Web.Http.HttpPost]
        public IHttpActionResult CreateUser(UserModel mdlUser)
        {
            string content = "";
            try
            {
                if (ModelState.IsValid)
                {
                    // target url given by Learn Upon, Unique for each account
                    string yourTarget = "https://{domain}/api/v1/users";

                    string josnUserModel = JsonConvert.SerializeObject(mdlUser);
                    josnUserModel = "{\"User\":" + josnUserModel + "}";

                    WebRequest yourWebRequest = WebRequest.Create(yourTarget);
                    yourWebRequest.Method = "POST";                   

                    // Establish credentials (if necessary)
                    CredentialCache yourCredentials = new CredentialCache();
                    yourCredentials.Add(new Uri(yourTarget), "Basic", new NetworkCredential(username, password));

                    // Set your credentials for your request
                    yourWebRequest.Credentials = yourCredentials;
                    // Add basic authentication headers (if necessary)

                    yourWebRequest.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(String.Format("{0}:{1}", username, password))));                    
                    yourWebRequest.Headers.Add("data", josnUserModel);

                    WebResponse yourWebResponse = yourWebRequest.GetResponse();
                    string s = yourWebResponse.ToString();

                    // Get your response stream
                    using (var reponseStream = yourWebResponse.GetResponseStream())
                    {
                        // Build a reader to read your stream
                        using (var responseReader = new StreamReader(reponseStream, Encoding.UTF8))
                        {
                            // Get your result here
                            content = responseReader.ReadToEnd();
                            JObject json = JObject.Parse(content);
                            return Ok(json);
                        }
                    }                   
                }
                else
                {
                    return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }
            }
            catch (Exception ex)
            {
                return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }


возврат API: { «Сообщение»: «Удаленный сервер возвратил ошибку: (404) Не найдено». } * * Тысяча двадцать-один

Примечание. Вышеуказанное сообщение поступает из блока перехвата исключений, каждый раз, когда возникает исключение и возвращается ответ 404.

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