c# - 如何从 c# mvc 控制器调用具有多个 json 参数的 API
问题描述
我想从控制器调用 WebAPI。我也想从控制器传递多个 json 参数。那么,如何将这些数据与 api 绑定呢?
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();
解决方案
您可以使用 HttpClient:
private static readonly HttpClient client = new HttpClient();
var values = new Dictionary<string, string>
{
{ "param1", "value1" },
{ "param2", "value2" }
};
*var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync("https://mainnet.infura.io/qhggowRXK7HIgXB0NEyw", content);
var responseString = await response.Content.ReadAsStringAsync();
或者,如果您使用的不是 NET 4.5 或更高版本,WebClient:
using (var client = new WebClient())
{
var values = new NameValueCollection();
values["thing1"] = "hello";
values["thing2"] = "world";
var response = client.UploadValues("http://www.example.com/recepticle.aspx", values);
var responseString = Encoding.Default.GetString(response);
}
推荐阅读
- c# - C# - 从 Int 值获取日期
- excel - Microsoft Excel 中的 IF 函数条件
- sql - Azure devops:sql 脚本的持续部署
- android - 如何从 Firebase 存储中读取图像?
- vuejs2 - 服务器端渲染时将 vuetify 样式移动到 css 文件
- ruby-on-rails - Sprockets::FileNotFound at / 找不到类型为“application/javascript”的文件“react-server”
- mq - RocketMQ 连接到 Z/OS IBM MQ 队列
- django - IF 语句中的条件要求明确指定值
- java - 在一条线上连续检查输入?
- c# - 尝试创建列表时无法创建抽象类
使用 csv.GetRecords() 从 CSV