httpclient-----------post
2021/8/2 6:05:51
本文主要是介绍httpclient-----------post,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20170516</version> </dependency> -------------------
[ { "description":"这是我们的第一个post的mock例子", "request":{ "uri":"/post/with/Cookies", "method":"post", "headers":{ "content-type":"application/json" }, "cookies":{ "login":"true" }, "json":{ "name":"hun", "age":"18" } }, "response":{ "status":200, "json": { "hun": "success", "status": "1" } } }, { "description":"这是一个会返回cookies的数据", "request":{ "uri":"/getcookies", "method":"get" }, "response":{ "cookies":{ "login":"true" }, "text":"恭喜你获取cookies信息正确", "headers":{"Content-Type":"text/html;charset=gbk"} } } ] ---------------------------
test.url=http://localhost:8887 test.get.with.cookies=/get/with/cookies getCookies.uri=/getcookies login=/login test.post.with.cookies=/post/with/Cookies ----------------------------
package com.course.cookie; import org.apache.http.HttpResponse; import org.apache.http.client.CookieStore; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONObject; import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import java.io.IOException; import java.util.List; import java.util.Locale; import java.util.ResourceBundle; public class MyCookieForPost { private String url; private ResourceBundle bundle; private CookieStore store; @BeforeTest public void beforeTest(){ bundle=ResourceBundle.getBundle("application", Locale.CHINA); url=bundle.getString("test.url"); } @Test public void testGetCookies() throws IOException { String result; //从配置文件中拼接测试的url String uri=bundle.getString("getCookies.uri"); String testUrl=this.url+uri; //测试逻辑代码书写 HttpGet get=new HttpGet(testUrl); DefaultHttpClient client=new DefaultHttpClient(); HttpResponse response=client.execute(get); result= EntityUtils.toString(response.getEntity(),"utf-8"); System.out.println(result); //获取cookies信息 this.store=client.getCookieStore(); List<org.apache.http.cookie.Cookie> cookieList=store.getCookies(); for (org.apache.http.cookie.Cookie cookie:cookieList){ String name=cookie.getName(); String value=cookie.getValue(); System.out.println("cookie name="+name+"cookie value="+value); } System.out.println("cookieList:"+cookieList); } @Test(dependsOnMethods = {"testGetCookies"}) public void testPostMethod() throws IOException { //String result; //从配置文件中拼接测试的url String uri = bundle.getString("test.post.with.cookies"); String testUrl = this.url + uri; //测试逻辑代码书写 //1.声明一个client对象,用来进行方法的执行 DefaultHttpClient client = new DefaultHttpClient(); //2.声明一个方法,这个方法就是post方法 HttpPost post = new HttpPost(testUrl); //3.添加参数 JSONObject param = new JSONObject(); param.put("name", "hun"); param.put("age", "18"); //4.设置请求头信息 设置header post.setHeader("content-type","application/json"); // post.setHeader("content-type", "application/json"); //将参数信息添加到方法中 StringEntity entity = new StringEntity(param.toString(),"utf-8"); post.setEntity(entity); //5.声明一个对象来进行响应结果的存储 String result; //6.设置cookies信息 client.setCookieStore(this.store); //执行post方法 HttpResponse response = client.execute(post); //获取响应结果 result = EntityUtils.toString(response.getEntity(), "utf-8"); System.out.println(result); //处理结果,就是判断返回结果是否符合预期 //将返回的响应结果字符串转化为json对象 JSONObject resultJson = new JSONObject(result); System.out.println("测试resultJSOn"+resultJson); //获取到结果值 String success = (String)resultJson.get("hun"); String status=(String)resultJson.get("status"); //具体的判断返回结果的值 Assert.assertEquals("success", success); Assert.assertEquals("1",status); } }
这篇关于httpclient-----------post的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享
- 2024-12-24更改 Git 本地分支关联的远程分支是什么命令?-icode9专业技术文章分享
- 2024-12-24uniapp 连接之后会被立马断开是什么原因?-icode9专业技术文章分享
- 2024-12-24cdn 路径可以指定规则映射吗?-icode9专业技术文章分享
- 2024-12-24CAP:Serverless?+AI?让应用开发更简单
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享