关于C#调用接口或Post,Flurl封装了httpclient, CSDN有哥们提供了一个公网的测试网站,可以测试Post调用,我写了2个函数,测试httpclient和Flurl使用Post:
async 和 await 是成对使用的,为了接受web异步返回的数据,winform的button控件中使用,只需要加上async关键字,然后在await中等待函数执行返回。
using Flurl;
using Flurl.Http;
using System.Net.Http.Headers;
using System.Net;
using System.Text;
using Newtonsoft.Json;
using System.Xml.Linq;
namespace mdyPost
{
public partial class Form1 : Form
{
public string txt = "";
public Form1()
{
InitializeComponent();
}
private async void toolStripButton1_Click(object sender, EventArgs e)
{
await PostFlurl();
textBox1.Text = txt;
}
public async Task PostFlurl()
{
var url = "https://api.apiopen.top/api/login";
var objData = new { account = "309324904@qq.com", password = "123456" };
txt = await url.PostJsonAsync(objData).ReceiveString();
}
public async Task PostHttpclient()
{
string url = "https://api.apiopen.top/api/login";
var objData = new { account = "309324904@qq.com", password = "123456" };
using (var client = new HttpClient())
{
HttpResponseMessage response = await client.PostAsync(url, new StringContent(JsonConvert.SerializeObject(objData), Encoding.UTF8, "application/json"));
textBox1.Text = await response.Content.ReadAsStringAsync();
}
}
public async Task<string> Post()
{
string url = "https://devops.seres.cn/v1/completions";
var ddd = new { Bearer = "sk-3ssmz98iy1r65cOp6cCeEcB1884c4929B583Ab4e8cE0674c", content = "你是" };
var headers = new { Authorization = "Bearer your_token_here" };
var r = await url.WithHeader("Content-Type", "application/json").PostJsonAsync(ddd).ReceiveString();
/*
string url = "https://ldmdy-seres-cn-9wcweeu8000011n.ztna-dingtalk.com/api/v2/open/worksheet/getFilterRows";
var ddd = new
{
appKey = "8f93f8b3dc7d4d3d",
sign = "MjBlYWQ2OTE3NWVkYzYyOWYwYzRjM2E2MTcxZGNhYjM0MjhhYjUyNDRmNDU4ZWExOWUwOTA2YzRhMjJhOWRjNg==",
worksheetId = "ibfxmglptb"
};*/
return r;
}
}
}