Java发送post方法详解
作者:xzj80927 发布时间:2023-10-28 03:55:00
标签:Java,post
总结一下java使用http发送post的方法:
1、post请求用于发送json 格式的参数:
/**
* post请求(用于请求json格式的参数)
*
* @param url 地址
* @param params json格式的参数
* @return
*/
public static String doPost(String url, String params) throws Exception {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost( url );// 创建httpPost
httpPost.setHeader( "Accept", "application/json" );
httpPost.setHeader( "Content-Type", "application/json" );
String charSet = "UTF-8";
StringEntity entity = new StringEntity( params, charSet );
httpPost.setEntity( entity );
CloseableHttpResponse response = null;
try {
response = httpclient.execute( httpPost );
StatusLine status = response.getStatusLine();
int state = status.getStatusCode();
if (state == HttpStatus.SC_OK) {
HttpEntity responseEntity = response.getEntity();
String jsonString = EntityUtils.toString( responseEntity );
return jsonString;
} else {
logger.error( "请求返回:" + state + "(" + url + ")" );
}
} finally {
if (response != null) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
2、用于发送key-value格式的参数
/**
* post请求(用于key-value格式的参数)
*
* @param url
* @param params
* @return
*/
public static String doPost(String url, Map params) {
BufferedReader in = null;
try {
// 定义HttpClient
HttpClient client = new DefaultHttpClient();
// 实例化HTTP方法
HttpPost request = new HttpPost();
request.setURI( new URI( url ) );
//设置参数
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
for (Iterator iter = params.keySet().iterator(); iter.hasNext(); ) {
String name = (String) iter.next();
String value = String.valueOf( params.get( name ) );
nvps.add( new BasicNameValuePair( name, value ) );
//System.out.println(name +"-"+value);
}
request.setEntity( new UrlEncodedFormEntity( nvps, HTTP.UTF_8 ) );
HttpResponse response = client.execute( request );
int code = response.getStatusLine().getStatusCode();
if (code == 200) { //请求成功
in = new BufferedReader( new InputStreamReader( response.getEntity()
.getContent(), "utf-8" ) );
StringBuffer sb = new StringBuffer( "" );
String line = "";
String NL = System.getProperty( "line.separator" );
while ((line = in.readLine()) != null) {
sb.append( line + NL );
}
in.close();
return sb.toString();
} else { //
System.out.println( "状态码:" + code );
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
第三,发送get请求
/**
* get请求
*
* @return
*/
public static String doGet(String url) {
try {
HttpClient client = new DefaultHttpClient();
//发送get请求
HttpGet request = new HttpGet( url );
HttpResponse response = client.execute( request );
/**请求发送成功,并得到响应**/
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
/**读取服务器返回过来的json字符串数据**/
String strResult = EntityUtils.toString( response.getEntity() );
return strResult;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
以上所述是小编给大家介绍的Java发送post方法详解整合网站的支持!
来源:https://blog.csdn.net/xzj80927/article/details/89098334


猜你喜欢
- SpringBoot找不到javax.servlet.Filter的问题新创建一个SpringBoot项目,编译时出现了找不到javax.s
- 刚刚开始学习C#,想自己做一个网页游戏的挂。游戏里面有收钱的动作,一个建筑物一个建筑物的点,很累啊。于是想用C#模拟鼠标操作替我收钱,想着学
- 0.解释器(Interpreter)模式定义 :给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。
- 本文实例为大家分享了Android实现计步器功能的具体代码,供大家参考,具体内容如下计步器的原理是通过手机的前后摆动模拟步伐节奏检测。我们本
- 本文实例讲述了C#时间戳基本用法。分享给大家供大家参考。具体如下:一、C#如何生成一个时间戳/// <summary> ///
- Flyweight定义:避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类)。为什么使用共享模式/享元模式面向对象语言的
- 1. 问题描述springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础
- 本篇文章介绍:如何使用Toolbar;自定义Toolbar;先来看一看效果,了解一下toolbar;布局文件:<android.sup
- 以下代码可以获得已安装应用(包)的信息:// 包管理器PackageManager pm = getPackageManager();//获
- 详解Android使用@hide的API的方法今天早上想修改MediaPlaybackService.Java(/packages/apps
- 学习完数组就能用C语言写出的简单小游戏:编译器使用的为VS2013代码分为三个部分1、头文件 game.h2、源文件 game.c 用来存放
- 一、前言想要自定义starter组件,首先要了解springboot是如何加载starter的,也就是springboot的自动装配机制原理
- 前言公司最近在开发中遇到一个问题,在弄帖子的发布与回复问题,然后再iOS端和Android端添加表情的时候都会出错Caused by: ja
- C# winform 新手实例:点击生成二维码效果图如下:打开exe默认界面部分代码://button点击事件private void bu
- 什么是JWTJSON Web Token(JWT)是一个开放的标准(RFC 7519),它定义了一个紧凑且自包含的方式,用于在各方之间以JS
- 题目描述已知鸡的数量为n只,兔的数量为m只,鸡兔的总头数为H个鸡兔的总脚数为Y只for循环语法for(表达式1;表达式2;表达式3 ){&n
- 本文实例为大家分享了使用的是iTextSharp添加PDF水印的具体代码,供大家参考,具体内容如下需要iTextSharp.dll, 下载地
- 方法一:需要调用win32api,winform、wpf通用[DllImport("user32.dll")]publi
- 本文以C#及VB.NET后端程序代码示例展示如何将HTML转为XML文件。转换时,调用Word API -Free Spire.Doc fo
- 年纪大了,以前做过的东西过阵子还是会忘,今天使用jenkins持续集成工具时用到了eclipse上传新maven工程至svn,上传完毕后改了