Hardik Dhankecha Ответов: 1

Как вызвать web API из контроллера с несколькими параметрами (без вызова ajax)


Я хочу, чтобы вызвать веб-API контроллера с множеством параметров в формате JSON. Я не хочу использовать вызов Ajax. Так как же я могу это сделать?

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

var jsonData = "{\"jsonrpc\":2.0," +
                "\"method\":eth_blockNumber," +
                "\"params\":[]," +
                "\"id\":83}";

            HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(string.Format("https://mainnet.infura.io/qhggowRXK7HIgXB0NEyw",jsonData));
            webreq.Method = "POST";
            webreq.ContentType = "application/json";
            using (var streamWriter = new StreamWriter(webreq.GetRequestStream()))
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                //var resToWrite = serializer.Deserialize<Dictionary<string, object>>(jsonData);
                //streamWriter.Write(jsonData);
                streamWriter.Flush();
                streamWriter.Close();
            }
            WebResponse response = webreq.GetResponse();
            var streamReader = new StreamReader(response.GetResponseStream());
            var result = streamReader.ReadToEnd();

F-ES Sitecore

Что не так с кодом, который вы разместили?

F-ES Sitecore

Вы не думаете, что тот факт, что он выбрасывает ошибку, на какой строке выбрасывается ошибка или какая ошибка выбрасывается, имеет отношение к вашему вопросу?

Hardik Dhankecha

Эту ошибку я получаю, когда запускаю его.

Произошла ошибка.Удаленный сервер вернул ошибку: (400) неверный запрос.System.Net.WebException в System.Net.HttpWebRequest.GetResponse() в NeoAPIProject.Контроллеры.Неоапиконтроллер.ETHAddressListen()

F-ES Sitecore

На самом деле вы не отправляете свои данные json вместе с POST, Этот код ничего не делает

строка.Формат("https://mainnet.infura.io/qhggowRXK7HIgXB0NEyw",jsonData)

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

https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx

Hardik Dhankecha

@F-ES спасибо
Позвольте мне проверить это один раз....

ZurdoDev

Такой требовательный. :)

1 Ответов

Рейтинг:
2

James Walsh Jr

Я думаю, что это сработает.

var httpWebRequest=(HttpWebRequest)WebRequest.Create("https://mainnet.infura.io/qhggowRXK7HIgXB0NEyw");
httpWebRequest.ContentType="application/json";
httpWebRequest.Method="POST";
using(var streamwriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
   string jsonData = "{\"jsonrpc\":2.0," + "\"method\":eth_blockNumber," +
                "\"params\":[]," + "\"id\":83}";
   streamWriter.Write(jsonData);
   streamWriter.Flush();
   streamWriter.Close();
}