HttpClient post方法两种传参方式简单实例
第一篇博客,简单实例httpclient post方法两种传参方式,一种form表单传参,一种json字符串(也就是我们说的对象)传参。
在这里插入代码片
package com.zjs.picture;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
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.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import net.sf.json.JSONObject;
public class HttpclientTest {
/**
* httpclient post方法使用表单形式传参
* @throws IOException
*/
public static void postForm() throws IOException {
String url="http://10.10.6.160:8001/person/V1/getEmployeeInfoListByCond";
HttpPost post = new HttpPost(url);
CloseableHttpClient client = HttpClientBuilder.create().build();
List<NameValuePair> parameters = new ArrayList<>();
parameters.add(new BasicNameValuePair("employeecode", "318706"));
parameters.add(new BasicNameValuePair("dataSource", "test"));
HttpEntity entity = new UrlEncodedFormEntity(parameters,"utf-8");
post.setEntity(entity);
HttpResponse response = client.execute(post);
System.out.println(response.getStatusLine().getStatusCode());
HttpEntity entity2 = response.getEntity();
String string = EntityUtils.toString(entity2);
System.out.println(string);
}
/**
* httpclient post方法使用json字符串形式传参
* @param pk_corp 测试参数
* @param dataSource 测试参数
* @throws IOException
*/
public static void postJson(String pk_corp,String dataSource) throws IOException {
String url="http://10.10.6.161:8201/organisation/v1/getCorpInfoByPkTwo";
JSONObject jsonObject = new JSONObject();
jsonObject.put("pk_corp", pk_corp);
jsonObject.put("dataSource", dataSource);
CloseableHttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.addHeader("Content-Type", "application/json");
post.setEntity(new StringEntity(jsonObject.toString()));
HttpResponse response = client.execute(post);
System.out.println(response.getStatusLine().getStatusCode());
// System.out.println(EntityUtils.toString(response.getEntity()));
String string = EntityUtils.toString(response.getEntity());
JSONObject fromObject = JSONObject.fromObject(string);
System.out.println(fromObject.get("status"));
}
/**
* httpclient get方法实例
* @throws IOException
*/
public static void getMethod() throws IOException {
// String url="https://www.baidu.com";
//java.net.URISyntaxException: Illegal character in path at index 28: ***
//有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。
//编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"
String url = "http://10.10.6.48:6023/zredis/authority/getAuth/%7b1%7d";
// String key = "1001";
CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet(url) ;
CloseableHttpResponse execute = client.execute(get);
System.out.println(EntityUtils.toString(execute.getEntity(),"utf-8"));
}
public static void main(String[] args) throws IOException {
//postForm();
//postJson("1001", "test");
getMethod();
}
}