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访问接口的更多相关文章

  1. 登录后保存token值到cookie中

    1.引入相应JS <script src="web/js/jquery-1.9.1.min.js"></script> <script src=&qu ...

  2. Win 2008 r2 远程桌面多用户登陆,一用户多登陆配置

    Windows 2008 R2远程桌面,设置最大连接数,一个登录后另一个就被踢掉等问题 Windows 2008 R2配置如图: 1.打开远程桌面回话主机配置 2.右键RDP-Tcp,属性,可设置最大 ...

  3. 利用cookies获取登录后的网页

    众所周知,HTTP连接是无状态的,那么问题来了,怎么记录用户的登录信息呢?通常的做法是用户第一次发送HTTP请求时,在HTTP Server端生成一个SessionID,SessionID会对应每个会 ...

  4. c# winform实现网页上用户自动登陆,模拟网站登录

    using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO ...

  5. 运用String类实现一个模拟用户登录程序

    package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...

  6. python3.0 模拟用户登录,三次错误锁定

    # -*- coding:utf-8 -*- #需求模拟用户登录,超过三次错误锁定不允许登陆     count = 0   #realname passwd Real_Username = &quo ...

  7. scrapy模拟用户登录

    scrapy框架编写模拟用户登录的三种方式: 方式一:携带cookie登录,携带cookie一般请求的url为登录后的页面,获取cookie信息应在登录后的页面获取,cookie参数应转成字典形式 # ...

  8. python小练习--模拟用户登录,(3次重试机会,登录成功展示登录账号密码)

    知识点使用:1.格式化输出的两种方法---% .formate 2.while循环的使用,及跳出循环的两种方法---break(跳出循环体).continue(结束本次循环,继续下次循环) 3.if条 ...

  9. Golang模拟用户登陆,突破教务系统

    目录 一.Golang模拟用户登陆,突破教务系统 1.1 请求登陆页面 1.2 抓包分析登陆请求 1.3 golang使用js引擎合成salt 1.4 模拟表单提交,完成登陆 1.5 进入成绩查询页, ...

随机推荐

  1. jenkins发送邮件失败“No emails were triggered”

    我在Jenkins邮箱配置成功,试发送也成功了以后,发现构建项目还是没有收到邮件 构建日志中提示“No emails were triggered” 检查了一下构建项目的配置,发现Editable E ...

  2. 系统启动时队列自动下单--ServletContextListener

    package com.liying.pear.queue; import javax.servlet.ServletContextEvent; import javax.servlet.Servle ...

  3. Java中的构造器与垃圾回收

    构造器 在我们初始化对象时,如果希望设置一些默认值,那么就可以使用构造器,在Java中,构造器使用和类同名的名字且没有返回值,如下 class Test{ private String name; T ...

  4. tomcat 调优-生产环境必备

    目录 1. tomcat 启动慢 1.1 tomcat 获取随机值阻塞 1.2 tomcat 需要部署的web应用程序太多 1.3 tomcat启动内存不足 2 Connector 调优 2.2 Co ...

  5. WPF设置控件获取键盘焦点时的样式FocusVisualStyle

    控件获取焦点除了用鼠标外,可以通过键盘来获取,比如Tab键或者方向键等,需要设置控件获取键盘焦点时的样式,可以通过设置FrameworkElemnt.FocusVisualStyle属性, 因为几乎所 ...

  6. 如何做实时监控?—— 参考 Spring Boot 实现(转)

    转自:http://blog.csdn.net/xiaoyu411502/article/details/48129057 随着 微服务 的流行,相比较以前一个大型应用程序搞定所有需求,我们现在更倾向 ...

  7. Java @Repeatable

    查看@PropertySource注解时候,发现了@Repeatable,从来没见过的注解,学习了下: 首先介绍下@Repeatable注解: JDK1.8出现的,作用是解决一个类上不能标注重复的注解 ...

  8. POJ 1730 Perfect Pth Powers(暴力枚举)

    题目链接: https://cn.vjudge.net/problem/POJ-1730 题目描述: We say that x is a perfect square if, for some in ...

  9. Linux中locate命令的实践总结

    locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 di ...

  10. ASP.NET MVC显示UserControl控件(扩展篇)

    昨晚Insus.NET有怀旧一下<念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件>http://www.cnblogs.com/insus/p/3641 ...