Gaz*_*991 5 c# post json httprequest
我正在尝试以 JSON 格式发送 http post 请求,该请求应如下所示:
{
"id":"72832",
"name":"John"
}
Run Code Online (Sandbox Code Playgroud)
我尝试像下面那样执行此操作,但如果我是正确的,这不会以 json 格式发送请求。
var values = new Dictionary<string,string>
{
{"id","72832"},
{"name","John"}
};
using (HttpClient client = new HttpClient())
{
var content = new FormUrlEncodedContent(values);
HttpResponseMessage response = await client.PostAsync("https://myurl",content);
// code to do something with response
}
Run Code Online (Sandbox Code Playgroud)
如何修改代码以json格式发送请求?
尝试这个
using (var client = new HttpClient())
{
var contentType = new MediaTypeWithQualityHeaderValue("application/json");
var baseAddress = "https://....";
var api = "/controller/action";
client.BaseAddress = new Uri(baseAddress);
client.DefaultRequestHeaders.Accept.Add(contentType);
var data = new Dictionary<string,string>
{
{"id","72832"},
{"name","John"}
};
//or you can use an anonymous type
//var data = new
//{
// id = 72832,
// name = "John"
//};
var jsonData = JsonConvert.SerializeObject(data);
var contentData = new StringContent(jsonData, Encoding.UTF8, "application/json");
var response = await client.PostAsync(api, contentData);
if (response.IsSuccessStatusCode)
{
var stringData = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<object>(stringData);
}
}
Run Code Online (Sandbox Code Playgroud)
如果请求返回时带有表单中的 JSON 数据
{ "return":"8.00", "name":"John" }
Run Code Online (Sandbox Code Playgroud)
你必须创建结果模型
public class ResultModel
{
public string Name { get; set; }
public double Return { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和代码
if (response.IsSuccessStatusCode)
{
var stringData = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<ResultModel>(stringData);
double value = result.Return;
string name = Result.Name;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19733 次 |
| 最近记录: |