HttpClient发送get,post接口请求
HttpClient发送get post接口请求/* * post
* @param url POST地址
* @param data POST数据NameValuePair[]
* @return 响应的参数
*/
public static String post(String url,NameValuePair[] data){---------------get里面没有data只有url String response = ""; HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(url); //设置请求编码
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK"); postMethod.setRequestBody(data); ---------------------------------get没有这一步-------- //设置请求头header参数
postMethod.setRequestHeader("userId","57601095");
postMethod.setRequestHeader("userSession","57601095");
postMethod.setRequestHeader("cityid","31000");
int statusCode = 0;
JSONObject jsonResult = null; try {
statusCode = httpClient.executeMethod(postMethod);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} try {
byte[] b=postMethod.getResponseBody();
response = new String(b,"GBK");
jsonResult = JSONObject.fromObject(response); //将返回结果变成json格式
} catch (IOException e) {
e.printStackTrace();
}
postMethod.releaseConnection();
System.out.println("POST响应参数:"+response);
return response;
}
下面是带有301重定向的完整代码
/**
* post
* @param url POST地址
* @param data POST数据NameValuePair[]
* @return 响应的参数
*/
public static String post(String url,NameValuePair[] data){------------------------get里面没有data只有url String response = "";
HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(url); //设置请求编码
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK");
postMethod.setRequestBody(data);--------------------------------get没有这一步 //设置请求头header参数
postMethod.setRequestHeader("userId","57601095");
postMethod.setRequestHeader("userSession","57601095");
postMethod.setRequestHeader("cityid","31000"); int statusCode = 0; try {
statusCode = httpClient.executeMethod(postMethod);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} //301、302重定向
if(statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY){
Header locationHeader = postMethod.getResponseHeader("location");
String location = null;
if (locationHeader != null) {
location = locationHeader.getValue();
System.out.println("重定向跳转页面:" + location);
response= post(location,data);//用跳转后的页面重新请求。
} else {
System.err.println("location is null.");
}
}else {
System.out.println(postMethod.getStatusLine());
try {
byte[] b=postMethod.getResponseBody();
response = new String(b,"GBK");
} catch (IOException e) {
e.printStackTrace();
}
postMethod.releaseConnection();
} System.out.println("POST响应参数:"+response); return response;
}
HttpClient发送get,post接口请求的更多相关文章
- Android笔记---使用HttpClient发送POST和GET请求
在Android上发送 HTTP 请求的方式一般有两种, HttpURLConnection 和 HttpClient,关于HttpURLConnection的使用方法能够參考HTTP之利用HttpU ...
- Java实现HttpClient发送GET、POST请求(https、http)
1.引入相关依赖包 jar包下载:httpcore4.5.5.jar fastjson-1.2.47.jar maven: <dependency> <groupId>o ...
- 使用httpclient发送get或post请求
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建 ...
- HttpClient 发送 HTTP、HTTPS 请求的简单封装
import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.Http ...
- HttpClient发送Get和Post请求
package JanGin.httpClient.demo; import java.io.IOException; import java.io.UnsupportedEncodingExcept ...
- [java,2018-01-16] HttpClient发送、接收 json 请求
最近需要用到许多在后台发送http请求的功能,可能需要发送json和xml类型的数据. 就抽取出来写了一个帮助类: 首先判断发送的数据类型是json还是xml: import org.dom4j.Do ...
- 读取配置文件的URL,使用httpClient发送Post和Get请求,实现查询快递物流和智能机器人对话
1.主要jar包: httpclient-4.3.5.jar httpcore-4.3.2.jar 2.目录结构如图所示: 3.url.properties文件如下: geturl=http:// ...
- 【httpclient-4.3.1.jar】httpclient发送get、post请求以及携带数据上传文件
1.发送get.post携带参数以及post请求接受JSON数据: package cn.qlq.utils; import java.io.BufferedReader; import java.i ...
- java使用HttpClient 发送get、pot请求
package eidolon.messageback.PostUtil; import java.io.BufferedReader; import java.io.IOException; imp ...
随机推荐
- POJ 1742 Coins(多重背包, 单调队列)
Description People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar. ...
- Extjs不错的博客
http://www.cnblogs.com/fangsui/category/372751.html http://www.cnblogs.com/WangJinYang/tag/EXT.NET/ ...
- swift学习笔记之---数组、字典、枚举、结构体
1.数组-Array let types = ["none","warning","error"] //省略类型的数组声明 let menb ...
- docker 配置文件:/etc/docker/daemon.json
/etc/docker/daemon.json 是 docker 的配置文件,默认是没有的,需要我们手动创建,可配置项如下: [root@localhost ~]$ vim /etc/docker/d ...
- Keil(MDK-ARM)在线调试(Ⅰ)(转)
Ⅰ.写在前面 Keil在线调试的内容有很多,本文带来在线调试常用的内容:Debug Toolbar调试工具栏(复位.全速运行.停止运行.单步调试.逐行调试.跳出调试.运行到光标行.跳转到暂停行.调试窗 ...
- Core Location和MapKit的一些简单使用
Core Location 1. 基本对象是CLLocation,有属性coordinate, altitude, horizontal/vertical Accuracy, timestamp, ...
- (1.1.6)UVA 10978 Let's Play Magic!(直叙式模拟)
/* * UVA_10978.CPP * * Created on: 2013年10月6日 * Author: Administrator */ #include <iostream> # ...
- 硝烟中的Scrum和XP-我们如何实施Scrum 12)发布计划 13)组合XP
12 怎样制定发布计划, 处理固定价格的合同 一次只计划一个sprint的事情会显得提前量不足, 提前做计划是个好习惯; 尤其是签了固定价格的合同之后, 不得不预先计划好, 防止无法按期交付的危险情况 ...
- MQTT协议笔记之连接和心跳
前言 本篇会把连接(CONNECT).心跳(PINGREQ/PINGRESP).确认(CONNACK).断开连接(DISCONNECT)和在一起. CONNECT 像前面所说,MQTT有关字符串部分采 ...
- Docker源码分析(二):Docker Client创建与命令执行
1. 前言 如今,Docker作为业界领先的轻量级虚拟化容器管理引擎,给全球开发者提供了一种新颖.便捷的软件集成测试与部署之道.在团队开发软件时,Docker可以提供可复用的运行环境.灵活的资源配置. ...