webservice客户端 get delete post 请求
package com.cn.eport.util.common; import java.io.IOException;
import java.util.List; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpDelete;
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.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.client.RestTemplate;
import com.cn.eport.service.Web;
public class webServiceUtil {
static Logger logger = Logger.getLogger(Web.class); /**
* 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;
}
/**
* 相当get请求
*
* @return
*/
public List<T> getPortList() {
// TODO Auto-generated method stub
RestTemplate client = new RestTemplate();
String url = "http://12.123.12.123:8080/abc/abcd";
String portString = client.getForObject(url, String.class);
JsonTools jsonTools = new JsonTools();
String className = "com.cn.eport.pojo.Port";
Class clazz = null;
try {
clazz = Class.forName(className);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<T> portList = jsonTools.jsonToList(portString, clazz);
return portList;
}
// ==================================删除=====================================================
/**
* delete方式提交 接收 路径(路径传参) 成功返回(return "success") 失败返回(return "false")
*
* @throws IOException
* @throws ClientProtocolException
*/
public String delete(String url) throws Exception {
// 创建HttpClient对象
CloseableHttpClient httpclient = HttpClients.createDefault();
// 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。
HttpDelete httpdelete = new HttpDelete(url);
System.out.println(url);
// 发送HttpDelete请求
HttpResponse httpResponse = httpclient.execute(httpdelete);
// 判断响应结果
CloseableHttpResponse response = null;
String jsonString = null;
try {
response = httpclient.execute(httpdelete);
StatusLine status = response.getStatusLine();
int state = status.getStatusCode();// 获取状态码 2、3开头成功 4、5错误
// 具体网址https://blog.csdn.net/dufufd/article/details/53112184
// 如果服务器成功地返回响应
HttpEntity responseEntity = response.getEntity();
jsonString = EntityUtils.toString(responseEntity);
if (state == HttpStatus.SC_OK) {
System.out.println("state" + state + "接收设置返回值" + jsonString);
// 响应成功返回值
return "success";
} else {
System.out.println("state" + state + "接收设置返回值" + jsonString);
logger.error("请求返回:" + state + "(" + url + ")");
// 响应失败返回值
return "false";
}
} finally {
if (response != null) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} // ==================================5.上传=====================================================
/**
* post方式提交(增,改) 传入 访问路径 参数 string(json) 成功返回(return "success") 失败返回(return
* "false") https://blog.csdn.net/wangpeng047/article/details/19624529
* https://blog.csdn.net/qq9808/article/details/78320816
*
* @throws IOException
* @throws ClientProtocolException
*/
public String post(String url, String params) throws ClientProtocolException, IOException {
// 1. 创建HttpClient对象。
CloseableHttpClient httpclient = HttpClients.createDefault();
// 2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。
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);
// 3.如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams
// params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数。
httpPost.setEntity(entity);
CloseableHttpResponse response = null;
String jsonString = null;
try {
// 4. 调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。
response = httpclient.execute(httpPost);
// 5. 调用HttpResponse的getAllHeaders()、getHeaders(String
// name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。
StatusLine status = response.getStatusLine();
int state = status.getStatusCode();
System.out.println("state=" + state);
if (state == HttpStatus.SC_OK) {
HttpEntity responseEntity = response.getEntity();
jsonString = EntityUtils.toString(responseEntity);
System.out.println("state" + state + "接收设置返回值" + jsonString);
// 响应成功返回值
return "success";
} else {
System.out.println("state" + state + "接收设置返回值" + jsonString);
logger.error("请求返回:" + state + "(" + url + ")");
// 响应失败返回值
return "false";
}
// 6. 释放连接。无论执行方法是否成功,都必须释放连接
} finally {
if (response != null) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
//===================================================
<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxws -->
<!-- https://mvnrepository.com/artifact/axis/axis -->
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-core -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.1.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-transports-http -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.6</version>
</dependency>
webservice客户端 get delete post 请求的更多相关文章
- C#WebService 客户端通过Http调用请求(转)
1.webservice帮助类 public class WebServiceHelper { public static string CallServiceByG ...
- 最简单易懂的webService客户端之soap+xml请求
代码准备: 1.网络上有提供一些免费的服务器测试地址,可以上这里找一找:https://my.oschina.net/CraneHe/blog/183471 2.我选择了一个翻译地址:http://w ...
- 使用GSoap开发WebService客户端与服务端
Gsoap 编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现, 从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多. 用gsoap开发web service的大致思路 我 ...
- 让python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE等请求
这两天在用python的bottle框架开发后台管理系统,接口约定使用RESTful风格请求,前端使用jquery ajax与接口进行交互,使用POST与GET请求时都正常,而Request Meth ...
- 让python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE等请求(新方法)
通过上篇博文的方法处理后,进入代码调试后发现ajax获取不了服务器端返回的数据,度娘后发现原来AJAX的OPTIONS请求方式是状态类型查询,即向服务器提交信息后不返回任何信息,只将执行状态(200状 ...
- (三)使用CXF开发WebService客户端
前面一讲开发了webservice服务器端接口,今天的话,我们来开发webservice客户端,让大家来体验下过程: 首先建一个Maven项目,项目名字,WS_Client: 然后我们要用CXF给我们 ...
- WebService客户端几种实现方式
1.jdk原生调用(需要获取服务接口文件) import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Ser ...
- Eclipse内嵌的webservice客户端
概述 Eclipse内嵌的webservice客户端,可用于发起请求,查看结果,展示请求和响应的报文. 详情 在Java EE视图,可以看到内嵌的webservice客户端浏览器登陆按钮 点击打开浏览 ...
- WebService Get/Post/Soap 方式请求
import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.InputStream; im ...
随机推荐
- RDD、DataFrame、Dataset
RDD是Spark建立之初的核心API.RDD是不可变分布式弹性数据集,在Spark集群中可跨节点分区,并提供分布式low-level API来操作RDD,包括transformation和actio ...
- 运行官方mysql 镜像
sudo docker run -it -d --restart unless-stopped -p 13306:3306 -h mysql --name mysql -e MYSQL_ROOT_PA ...
- Linux 硬链接、软链接
索引节点 inode(index node) 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata).用户数据,即文件数据块 ...
- 关于存session,cookie还是数据库或者memcache的优劣,部分网上抄录
从效率考虑:cookie > memcache > 数据库cookie对服务器端负载没影响,如果加密.解密会多消耗一点点cpu.带宽倒是会消耗得多一点,同域名下的所有http reques ...
- Vue.js——60分钟组件快速入门(下篇)
转自:https://www.cnblogs.com/keepfool/p/5637834.html 概述 上一篇我们重点介绍了组件的创建.注册和使用,熟练这几个步骤将有助于深入组件的开发.另外,在子 ...
- 机器学习进阶-图像形态学操作-梯度运算 cv2.GRADIENT(梯度运算-膨胀图像-腐蚀后的图像)
1.op = cv2.GRADIENT 用于梯度运算-膨胀图像-腐蚀后的图像 梯度运算:表示的是将膨胀以后的图像 - 腐蚀后的图像,获得了最终的边缘轮廓 代码: 第一步:读取pie图片 第二步:进行腐 ...
- Srping cloud Ribbon 自定义负载均衡
IRule 默认提供有7种方式,使用轮询方式 如何自定义 1:主启动类加@RibbonClient @RibbonClient(name="微服务名", configuration ...
- python 阿狸的进阶之路(4)
装饰器 #1.开放封闭原则:对扩展开放,对修改是封闭#2.装饰器:装饰它人的,器指的是任意可调用对象,现在的场景装饰器->函数,被装饰的对象也是->函数#原则:1.不修改被装饰对象的源代码 ...
- mybatis初识
mybatis采用弱连接,在一定程度上集中管理了sql的语句编写,又实现了自动映射bean. 此处以最基础的mybatis连接为例: 引入jar包: mybatis-3.4.5.jar ojdbc-6 ...
- Xcode 8 注释快捷键失效
sudo /usr/libexec/xpccachectl 重启