2016-05-06 3 views
2

Я знаю, как отправить запрос на отправку с угловым API, но задавался вопросом, как получить сообщение, отправленное из приложения.Отправить запрос на отправку на Угловую страницу с приложения C#

Пусть говорят, что я это C# после запроса:

public string sendPost(string data) 
    { 
     // Create a request using a URL that can receive a post. 
     WebRequest request = WebRequest.Create("http://localhost:5000/app/edit"); 
     // Set the Method property of the request to POST. 
     request.Method = "POST"; 
     // Create POST data and convert it to a byte array. 

     string postData = "{\"data\":\"" + data + "\"}"; 

     byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
     // Set the ContentType property of the WebRequest. 
     request.ContentType = "application/json"; 
     // Set the ContentLength property of the WebRequest. 
     request.ContentLength = byteArray.Length; 
     // Get the request stream. 
     Stream dataStream = request.GetRequestStream(); 
     // Write the data to the request stream. 
     dataStream.Write(byteArray, 0, byteArray.Length); 
     // Close the Stream object. 
     dataStream.Close(); 
     // Get the response. 
     WebResponse response = request.GetResponse(); 
     // Display the status. 
     Console.WriteLine(((HttpWebResponse)response).StatusDescription); 
     // Get the stream containing content returned by the server. 
     dataStream = response.GetResponseStream(); 
     // Open the stream using a StreamReader for easy access. 
     StreamReader reader = new StreamReader(dataStream); 
     // Read the content. 
     string responseFromServer = reader.ReadToEnd(); 
     // Display the content. 
     Console.WriteLine(responseFromServer); 
     // Clean up the streams. 
     reader.Close(); 
     dataStream.Close(); 
     response.Close(); 

     return responseFromServer; 
    } 

В моем угловом приложение у меня есть этот контроллер:

(function() { 
    'use strict'; 

    angular.module('anbud') 
     .controller('editController', ['$scope', 'localStorage', 'md5', '$routeParams', 'httpError', 
      function ($scope, localStorage, md5, $routeParams, httpError) { 

       function processHeaderData() { 
        console.log($routeParams.json); 
       } 

       processHeaderData(); 

      }]); 

}()); 

Я могу отправить данные через URL-адрес и использовать routeParams, но я Вместо этого вы хотите использовать POST. Как получить доступ к данным POST?

ответ

0

Я думаю, что вы смешиваете технологии интерфейсов и веб-серверов.

Угловая технология переднего конца, что вы имеете в виду отправку сообщения в угловое, на самом деле означает отправку запроса на веб-сервер, на котором размещен угловой веб-сайт.

Как только вы это проясните, вам просто нужно отправить вызов API на веб-сервер, например, как сделать это с угловым, и сервер вернет вам данные json.

Если вы хотите получить представление HTML определенного маршрута, я боюсь, что для этого нет хорошего способа. Это не является особенным с угловым либо, любой сайт, который загружает данные с помощью вызова ajax, будет иметь эту проблему.

0

Угловой $ http.post также может извлекать данные. В целях безопасности это весьма полезно. Логика для этого не меняется.

Вы можете отправить данные с C# контроллера через это:

using System.Net; 
using System.Net.Http; 
using System.Web.Http; 

namespace Sample.API.Controllers 
{ 
    public class ContentDataController 
    { 

     [Route("api/ContentData")] 
     [HttpPost] 

     public HttpResponseMessage SamplePost(SampleRequest request) 
     { 
      HttpResponseMessage response; 
      try 
      { 
       var cda = dataContentAdapter(); 
       //Business logic here 
       var result = cda.GetContent(request); 

       //pass the above result to angular 
       response = Request.CreateResponse(HttpStatusCode.OK, result); 
       response.Content.Headers.Expires = new DateTimeOffset(DateTime.Now.AddSeconds(300)); 
      } 
      catch (Exception ex) 
      { 
       ApplicationLogger.LogCompleteException(ex, "ContentDataController", "Post"); 
       HttpError myCustomError = new HttpError(ex.Message) { { "IsSuccess", false } }; 
       return Request.CreateErrorResponse(HttpStatusCode.OK, myCustomError); 
      } 
      return response; 
     } 
    } 
} 

При этом, отправьте запрос с углового с какими-либо данными, которые должны быть использованы в запросе. Благоприятным является отправка json, анализ json в вашей бизнес-логике.

Создайте HttpResponseMessage с новой полезной нагрузкой для углового $ http для получения.

Смежные вопросы