时间:2021-05-19
情景描述
将一个时间转换为对应的unix时间戳,
字符集使用UTF-8编码,数据通讯统一采用 HTTP 协议通讯,使用POST 方法请求并传递参数。
POST请求Content-Type 设置为application/x-puteHash(Encoding.UTF8.GetBytes(sign)));}
使用HttpClient模拟请求
// 创建HttpClient实例var httpClient = new HttpClient();// 请求的时间,2020-10-01 08:10:30var requestTime = new MyDateTime{ Year = 2020, Month = 10, Day = 1, Hour = 8, Minute = 10, Second = 30,};// 设置HttpRequestMessage中的Content。// 请求入参,我们接口定义的入参是dateTime,所以这里的Key也是dateTimevar requestDic = new Dictionary<string, string>();requestDic.Add("dateTime", JsonConvert.SerializeObject(requestTime));var encodedContent = await new FormUrlEncodedContent(requestDic).ReadAsStringAsync().ConfigureAwait(false);var httpContent = new StringContent(encodedContent, Encoding.UTF8, "application/x-www-form-urlencoded");// 添加签名头var sign = await GenerateSign(requestTime);httpContent.Headers.Add("X-Sign", sign);// 生成Request的Messagevar httpRequestMessage = new HttpRequestMessage{ Method = HttpMethod.Post, // 请求方式 RequestUri = new Uri("http://localhost:5000/DateTime/GetTimeStamp"), // 请求地址 Content = httpContent, // 请求内容};// 在HttpRequestMessage中可以任意的添加请求头httpRequestMessage.Headers.Add("GitHub", "XgHao");// 发送请求var response = await httpClient.SendAsync(httpRequestMessage).ConfigureAwait(false);var timeStamp = await response.Content.ReadAsStringAsync().ConfigureAwait(false);捕获请求
这里我们使用Fiddler来捕获请求
可以看到,我们的签名及我们自己加的其他Header,还有计算返回的时间戳。
切换到WebForms可以看到请求的参数
说明使用HttpClient发送请求成功了。
如果Fiddler没能捕获请求,请考虑设置HttpClient的代理,具体参考这篇文章C# 如何使用Fiddler捕获本地HttpClient发出的请求
以上这篇C# 使用HttpClient模拟请求的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java模拟http发送请求,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求,实例代码:packa
java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请
本节引言:1.HttpClient使用流程基本流程:2.HttpClient使用示例1)使用HttpClient发送GET请求直接贴下简单的发送Get请求的代码
一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是
本文实例讲述了C#模拟Http与Https请求框架类。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:usingSystem.Text;usingSy