httpclient之post 方法(参数为json类型)

package httpclient;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;

import org.apache.http.*;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.config.RequestConfig;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.ContentType;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;

import org.json.JSONObject;/** * Created by jiangcui on 2018/5/21. */public class HttpClientPostForJson {    public static void main(String[] args) {        JSONObject jsonObject = new JSONObject();        jsonObject.append("username", "jiangcui");        jsonObject.append("password", "pdmi1234");

String url = "https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F";        String result = HttpClientPostForJson.doPostForJson(url,jsonObject);        System.out.println(result);    }

//静态方法,可直接调用    public static String doPostForJson(String url, JSONObject jsonParams) {        CloseableHttpClient closeableHttpClient = HttpClients.createDefault();

// 配置超时时间        RequestConfig requestConfig = RequestConfig.custom()                .setConnectTimeout(5000)                .setConnectionRequestTimeout(5000)                .setSocketTimeout(5000)                .setRedirectsEnabled(true)                .build();

HttpPost httpPost = new HttpPost(url);        //设置超时时间        httpPost.setConfig(requestConfig);        httpPost.setHeader("Content-Type", "application/json");

//JSONObject jsonObject = null;

try {            StringEntity entity = new StringEntity(jsonParams.toString(), "utf-8");            entity.setContentEncoding("utf-8");            entity.setContentType("application/json");            httpPost.setEntity(entity);

//执行post            CloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute(httpPost);            String strRequest = "";            if (null != closeableHttpResponse && !"".equals(closeableHttpResponse)) {                System.out.println(closeableHttpResponse.getStatusLine().getStatusCode());                if (closeableHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {                    HttpEntity httpEntity = closeableHttpResponse.getEntity();                    strRequest = EntityUtils.toString(httpEntity);                } else {                    strRequest = "Error Response" + closeableHttpResponse.getStatusLine().getStatusCode();                }            }            return strRequest;

} catch (ClientProtocolException e) {            e.printStackTrace();            return "协议异常";        } catch (ParseException e) {            e.printStackTrace();            return "解析异常";        } catch (IOException e) {            e.printStackTrace();            return "传输异常";        } finally {            try {                if (closeableHttpClient != null) {                    closeableHttpClient.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }    }}

原文地址:https://www.cnblogs.com/jshtest/p/9070711.html

时间: 2024-07-30 12:24:13

httpclient之post 方法(参数为json类型)的相关文章

postman测试post请求参数为json类型

引言 Postman 是一个用来测试Web API的Chrome 外挂软件,可由google store 免费取得并安装于Chrome里,对于有在开发Web API的开发者相当有用,省掉不少写测试页面呼叫的工作,通常我们看到的使用情境多数是直接呼叫Web API而未随着Request发送相关所需参数,本篇就来说明如果我们想要在呼叫Web API时一并夹带JSON数据时,该如何使用Postman? 需求 采用POST的请求方式,并且须夹带JSON数据给Web API使用教程 第一.设置URL 第二

Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量 private 权限修饰符,私有访问, 方法,成员变量 static 静态修饰符 方法,成员变量 final 最终修饰符 类,方法,成员变量,局部变量 abstract 抽象修饰符 类 ,方法 我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰

辨析Java方法参数中的值传递和引用传递

小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. public class MethodParamsPassValue { public static void doErrorHandle() { boolean a = false; int b = 5; passBaseValue(a, b); if (a == true || b == 10) { S

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承.(4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承. 分析以上程序示例,主要疑惑点是“子类继承父类的成员变量,父类对象是否会实例化?私有成员变量是否会被继承?被继承的成员变量

C#中方法参数的类型

C#方法参数类型有三种: 根据传递方式不同分为值传递和引用传递 值传递的本质是在传递参数时是把实参里面存的值传递给方法的形参,方法中对形参改变数值不会影响原来实参里面的数据. 输出结果为0 引用类型传递的本质是:实参是引用类型存储的是地址值,传递时是将实参中的地址传递给形参,这个时候形参中存储的是地址值.而在方法中改变变量值的时候是引用地址中存储的数据,所以会改变原来实参变量的值.因为两个变量引用的是一个地址. 声明引用类型传递时,需在方法签名中使用ref关键字声明参数类型为引用传递,并且在调用

[ jquery 过滤器nextAll(expr) ] 此方法用于在选择器的基础之上搜索被选元素的后面的所有同级元素,此方法参数只能传递表达式,无法传递其他类型

此方法用于在选择器的基础之上搜索被选元素的后面的所有同级元素,此方法参数只能传递表达式,无法传递其他类型 可以使用此方法向里面传递表达式的方法实现和jqueryObj.next()相同的效果 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta

[ jquery 过滤器next(expr) ] 此方法用于在选择器的基础之上搜索被选元素的后一个同级元素,此方法参数只能传递表达式,无法传递其他类型

此方法用于在选择器的基础之上搜索被选元素的后一个同级元素,此方法参数只能传递表达式,无法传递其他类型: 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,key

#定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型。其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数)。

1 #定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型.其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数). 2 def get_num(num): 3 if type(num)!= list: 4 return '您传入的不是列表!' 5 else: 6 for i in num: 7 if not isinstance(i,int): 8 return '请全部传入整数!' 9 return list(filter(lambda x:x

JQuery中$.ajax()方法参数详解

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项