C/C++教程

httpclient-----------post

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!