二:Postman中Header参数的传递
我们经常会遇到传递参数的时候将参数放在header里进行传输,但是接口文档参数是在header的参数,并不是在json体里面的(当然json体里面也会带其他参数)如图所示,
比如我们已post请求为例子
import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public static String customerClient(String userAccount, String password, String authToken) throws Exception { HttpPost httpPost = new HttpPost("http://118.122.126.10:11134/customer-client/custom/load"); CloseableHttpClient client = HttpClients.createDefault(); String respContent = null; // json方式 JSONObject jsonParam = new JSONObject(); jsonParam.put("userAccount", userAccount); jsonParam.put("password", password); jsonParam.put("sign", GetSignUtil.getSign(new String[]{userAccount, password})); StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");//解决中文乱码问题 entity.setContentEncoding("UTF-8"); entity.setContentType("application/json"); httpPost.addHeader("userAccount", userAccount); httpPost.addHeader("authToken", authToken); httpPost.setEntity(entity); HttpResponse resp = client.execute(httpPost);//执行时机 if (resp.getStatusLine().getStatusCode() == 200) { HttpEntity he = resp.getEntity(); respContent = EntityUtils.toString(he, "UTF-8"); } JSONObject jsonObject = JSONObject.parseObject(respContent); return respContent; }
其中最主要的代码
httpPost.addHeader("userAccount", userAccount); httpPost.addHeader("authToken", authToken);
这样就可以实现带参数或者token,如果想token在postman里面是全局变量也是可以的,
注意以下方式可能不成功
HttpURLConnection.setDefaultRequestProperty("userAccount", userAccount);//过时
HttpURLConnection.setDefaultRequestProperty("authToken", authToken);//过时
其他可参考Postman-postman接口测试工具下载附安装使用教程
二:Postman中token校验与参数传递实战
Token定义和目的:Token是服务端生成的一串字符串,以做客户端进行请求的一个令牌。当第一次登录后,服务器生成一个Token,并将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。目的是为了减轻服务器压力,减少频繁的查询数据库,使服务器更加健壮。由于目前所使用的用例不稳定,暂时还没有找到合适的用例,以后再补充完善
一个完整的项目,很多接口都会用到token,不可能一直复制粘贴,这就需要在Tests里面获取token值,并将token值设置为环境变量。在设置环境变量的面板中,token值不用填写,在Tests里面的环境变量值会自动补充。下图仅供参考:
文章整理自:https://blog.csdn.net/wozniakzhang/article/details/89362018
查看更多