单元测试,模拟用户Get登陆,并携带登录后的token访问接口
HttpClient _httpClient;
HttpClient _businessHttpClient; private async Task<string> GetAccessToken()
{
_businessHttpClient = new HttpClient();
_businessHttpClient.BaseAddress = new Uri("http://localhost:8998/Meet.WebApi/");
_httpClient = new HttpClient();
_httpClient.BaseAddress = new Uri("http://localhost:8998/HRManage.WebApi/api/UserLogin?username=admin&password=111111");
var parameters = new Dictionary<string, string>();
parameters.Add("username", "admin");
parameters.Add("password", "");
var response = await _httpClient.PostAsync(_httpClient.BaseAddress, new FormUrlEncodedContent(parameters));
var responseValue = await response.Content.ReadAsStringAsync(); if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
var data = JsonConvert.DeserializeObject<ResultEntity<UserLoginResultDTO>>(responseValue);
return data.Data.AccessToken;
}
else
{
return string.Empty;
}
} [TestMethod]
public void GetMeetingById()
{
string tokenstring = GetAccessToken().Result; _businessHttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenstring);
var response = _businessHttpClient.GetAsync("Meet/GetMeetingById?Id=5C0062FF-542A-4C6E-BE28-5998EC3CEDE4").Result;
var responseValue = response.Content.ReadAsStringAsync().Result;
_businessHttpClient.Dispose();
var data = JsonConvert.DeserializeObject<ResultEntity<MeetingOutDto>>(responseValue);
Assert.AreEqual(true, JObject.Parse(responseValue)["IsSuccess"].Value<bool>(), JObject.Parse(responseValue)["Msg"].Value<string>());
}
Post方式:
HttpClient _httpClient;
//模拟登陆
public async Task<bool> Login()
{
_httpClient = new HttpClient();
_httpClient.BaseAddress = new Uri("http://localhost:8088");//14199 //
LoginInput log = new LoginInput() { mobile = "", pwd = "" }; HttpContent httpcontent = new StringContent(JsonConvert.SerializeObject(log));
httpcontent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await _httpClient.PostAsync("hcApi/Login/login", httpcontent);
var responseValue = await response.Content.ReadAsStringAsync(); if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
return JObject.Parse(responseValue)["isOK"].Value<bool>();
}
else
{
return false;
}
}
/// <summary>
/// 根据条件获取卫生院信息
/// </summary>
/// <returns></returns>
[TestMethod]
public async Task GetHealthCenterInfo()
{
await Login(); var response = await _httpClient.GetAsync("hcApi/SampleEntry/GetHealthCenterInfo?hcID=57&&keyWord=&&pageIndex=1&&pageSize=10");
var responseValue = await response.Content.ReadAsStringAsync();
_httpClient.Dispose();
Assert.AreEqual(, JObject.Parse(responseValue)["errorCode"].Value<int>(), JObject.Parse(responseValue)["msg"].Value<string>());
}
单元测试,模拟用户Get登陆,并携带登录后的token访问接口的更多相关文章
- 登录后保存token值到cookie中
1.引入相应JS <script src="web/js/jquery-1.9.1.min.js"></script> <script src=&qu ...
- Win 2008 r2 远程桌面多用户登陆,一用户多登陆配置
Windows 2008 R2远程桌面,设置最大连接数,一个登录后另一个就被踢掉等问题 Windows 2008 R2配置如图: 1.打开远程桌面回话主机配置 2.右键RDP-Tcp,属性,可设置最大 ...
- 利用cookies获取登录后的网页
众所周知,HTTP连接是无状态的,那么问题来了,怎么记录用户的登录信息呢?通常的做法是用户第一次发送HTTP请求时,在HTTP Server端生成一个SessionID,SessionID会对应每个会 ...
- c# winform实现网页上用户自动登陆,模拟网站登录
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO ...
- 运用String类实现一个模拟用户登录程序
package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...
- python3.0 模拟用户登录,三次错误锁定
# -*- coding:utf-8 -*- #需求模拟用户登录,超过三次错误锁定不允许登陆 count = 0 #realname passwd Real_Username = &quo ...
- scrapy模拟用户登录
scrapy框架编写模拟用户登录的三种方式: 方式一:携带cookie登录,携带cookie一般请求的url为登录后的页面,获取cookie信息应在登录后的页面获取,cookie参数应转成字典形式 # ...
- python小练习--模拟用户登录,(3次重试机会,登录成功展示登录账号密码)
知识点使用:1.格式化输出的两种方法---% .formate 2.while循环的使用,及跳出循环的两种方法---break(跳出循环体).continue(结束本次循环,继续下次循环) 3.if条 ...
- Golang模拟用户登陆,突破教务系统
目录 一.Golang模拟用户登陆,突破教务系统 1.1 请求登陆页面 1.2 抓包分析登陆请求 1.3 golang使用js引擎合成salt 1.4 模拟表单提交,完成登陆 1.5 进入成绩查询页, ...
随机推荐
- Android返回系统Home桌面
Intent intent = new Intent(); // 为Intent设置Action.Category属性 intent.setAction(Intent.ACTION_MAIN);// ...
- 摆脱定时任务的cron表达式的困扰
一.背景 最近因为需要,需要适用Spring的task定时任务进行跑定时任务,以前也接触过,但是因为懒没有好好地理解@Scheduled的cron表达式,这次便对它做了一个全方位的了解和任务,记录下来 ...
- 【转】linux sar命令详解
原文地址:http://lovesoo.org/linux-sar-command-detailed.html sar(System Activity Reporter系统活动情况报告)是目前 Lin ...
- 企业域的冗余设计①:DHCP冗余设计(上)
在许多企业网络中,为了方便客户端IP地址的管理,通常采用的是自动获取的方式向DHCP服务器获得IP地址.为了保证DHCP服务器能够正常稳定地向客户端提供IP地址的租赁,DHCP服务器的冗余设计就显得格 ...
- java学习-Comparable<Integer>接口方法的实现
基本数据类型的包装类Integer, Float, Double,Long,Byte等都实现的Comparable接口,用于列表List或数组arrays的排序 Comparable<Integ ...
- ubuntu 下配置elasticSearch
配置JAVA环境 配置jdk 上官网下载x64的和ubuntu匹配的jdk 找到usr/java ,解压下载的文件 tar –xzvf 文件.tar.gz Vim /etc/source 添加配 ...
- Java程序读取Properties文件
一.如果将properties文件保存在src目录下 1.读取文件代码如下: /** * 配置文件为settings.properties * YourClassName对应你类的名字 * / pri ...
- Java 使用pipeline对redis进行批量读写
code import redis.clients.jedis.Jedis; import redis.clients.jedis.Pipeline; import java.util.List; p ...
- WIN7 下IIS7的rewrite伪静态功能设置方法
win7系统都自带有iis的功能.关于WIN7下IIS的安装,请参考这里 http://jingyan.baidu.com/article/219f4bf723bcb2de442d38ed.html ...
- 【Linux】CentOS安装solr 4.10.3
Solr是什么? Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索 ...