1.使用HttpURLConnection

    public static String getJsonByURL(String base_url) {
String url = base_url;
StringBuilder json = new StringBuilder();
String result = ""; try {
URL u = new URL(url);
HttpURLConnection uc = (HttpURLConnection) u.openConnection();
uc.setRequestMethod("GET");
//uc.setRequestMethod("POST");
/*
String cookieVal =uc.getHeaderField("Set-Cookie"); //获取session
String JSESSIONID = (cookieVal.substring(0,cookieVal.indexOf(";")));
uc.setRequestProperty("Cookie", JSESSIONID);//设置session
*/
BufferedReader bd = new BufferedReader(new InputStreamReader(uc.getInputStream(),"GBK"));
String s = null;
while((s=bd.readLine())!=null) {
json.append(s);
}
bd.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
result = json.toString(); return result;
}

2.使用HttpClient

(1)get

    public static String getJsonByGet(String url) {
String s = "";
//CloseableHttpClient httpclient = HttpClients.createDefault();
DefaultHttpClient httpclient = new DefaultHttpClient(new PoolingClientConnectionManager());
HttpGet httpget = new HttpGet(url);
CloseableHttpResponse response = null;
HttpEntity entity = null;
try {
response = httpclient.execute(httpget);
entity = response.getEntity();
/*
CookieStore cookieStore = httpclient.getCookieStore();//获取cookies
httpclient.setCookieStore(cookieStore);//设置cookies
*/
s = EntityUtils.toString(entity, "UTF-8");
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
httpclient.close();
}
return s;
}

(POST)

   public static String getJsonByPost(String url) {  

        DefaultHttpClient httpclient = new DefaultHttpClient(new PoolingClientConnectionManager());
//CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url); CloseableHttpResponse response = null;
HttpEntity entity = null;
String s = "";
try {
response = httpclient.execute(httppost);
entity = response.getEntity();
s = EntityUtils.toString(entity, "UTF-8");
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace(); }finally {
httpclient.close();
}
return s;
}

获取cookies和设置cookies的位置要根据不同的接口而定。

以上的方法是把接口的参数,在调用方法之前就配好了,作为url传入。也可在调用的相应方法内部做处理。

1.使用HttpURLConnection

    public static byte[] getJsonByURL(String url, String params) throws Exception{
URL url = new URL(url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");//
// conn.setConnectTimeout(10000);//
// conn.setReadTimeout(2000);//
conn.setDoOutput(true);//
byte[] bypes = params.toString().getBytes();
conn.getOutputStream().write(bypes);// 输入参数
InputStream inStream=conn.getInputStream();
return StreamTool.readInputStream(inStream);
}

对参数的处理有很多方法,可以append(),也可以自己+,不同参数,不同方法重载

2.使用HttpClient

package com.tradeyun;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
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.ClientProtocolException;
import org.apache.http.client.HttpClient;
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.client.utils.URIUtils;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingClientConnectionManager;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils; /**
* @author QiaoJiafei
* @version 创建时间:2015年12月18日 上午10:03:12
* 类说明
*/
public class TestHttpClientParameter {
public static void main(String args[]) {
/* HttpClient httpclient = new DefaultHttpClient(new PoolingClientConnectionManager());
String s = "";
HttpResponse response = null;
HttpEntity entity = null;
String url = "http://172.16.30.244:8090/gm_product_site/assignmentApply/auth";
System.out.println("url=========="+url);
HttpPost post = new HttpPost(url);
List formparams = new ArrayList();
formparams.add(new BasicNameValuePair("applyId","1"));
formparams.add(new BasicNameValuePair("isPass","true"));
//formparams.add(new BasicNameValuePair("pwd","aaaaaa1"));
//formparams.add(new BasicNameValuePair("pwd", "aaaaaa1"));
UrlEncodedFormEntity uefEntity;
try {
uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8"); post.setEntity(uefEntity);
System.out.println("executing request " + post.getURI());
response = httpclient.execute(post);
entity = response.getEntity();
s= EntityUtils.toString(entity, "UTF-8");
System.out.println(s); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} */ //不成功
TestHttpClientParameter t = new TestHttpClientParameter();
t.post3();
} public void post3() {
HttpClient httpclient = new DefaultHttpClient(new PoolingClientConnectionManager());
String s = "";
HttpResponse response = null;
HttpEntity entity = null;
String url = "http://172.16.30.244:8090/gm_product_site/assignmentApply/auth";
System.out.println("url=========="+url);
HttpPost post = null;
List formparams = new ArrayList();
formparams.add(new BasicNameValuePair("applyId","1"));
formparams.add(new BasicNameValuePair("isPass","true")); UrlEncodedFormEntity uefEntity;
try {
uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8"); URI uri=null;
try {
uri = URIUtils.createURI("http", "172.16.30.244:8090", -1, "/gm_product_site/assignmentApply/auth",
URLEncodedUtils.format(formparams, "UTF-8"), null);
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
post = new HttpPost(uri);
System.out.println(post.getURI());
response = httpclient.execute(post);
entity = response.getEntity();
s= EntityUtils.toString(entity, "UTF-8");
System.out.println(s); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

httpclient也可以使用下面的方式:

package com.core.execute;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils; /**
* @author QiaoJiafei
* @version 创建时间:2016年3月2日 上午10:54:24
* 类说明
*/
public class TestMapPara {
static HttpClient client = HttpClients.createDefault(); public static void main(String args[]) {
Map<String, String> map = new HashMap<String, String>();
map.put("id", "22");
postmap(map);
} private static void postmap(Map<String, String> params) {
// TODO Auto-generated method stub
String url = "http://172.16.30.73:8080/test/user/update";
HttpPost httppost = new HttpPost(url);
List<NameValuePair> ps = new ArrayList<NameValuePair>();
for (String pKey : params.keySet()) {
ps.add(new BasicNameValuePair(pKey, params.get(pKey)));
}
try {
httppost.setEntity(new UrlEncodedFormEntity(ps));
       //上面一行代码也可以使用带有编码格式的构造方法,如new UrlEncodedFormEntity(ps, "UTF-8");
HttpResponse response = client.execute(httppost);
HttpEntity httpEntity = response.getEntity();
System.out.println(EntityUtils.toString(httpEntity,"utf-8"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

java使用HttpURLConnection和HttpClient分别模拟get和post请求以及操作cookies的更多相关文章

  1. java 的http请求方式:HttpURLConnection和HttpClient

    1.要了解一些概念性的东西,比如Http的协议以及协议头等一些东东 2.HttpURLConnection一般步骤:创建URL对象==>获取URL的HttpURLConnection对象实例== ...

  2. HttpClient方式模拟http请求

    方式一:HttpClient import org.apache.commons.lang.exception.ExceptionUtils; import org.apache.http.*; im ...

  3. Java使用HttpURLConnection上传文件

    从普通Web页面上传文件非常easy.仅仅须要在form标签叫上enctype="multipart/form-data"就可以,剩余工作便都交给浏览器去完毕数据收集并发送Http ...

  4. Java使用HttpURLConnection上传文件(转)

    从普通Web页面上传文件很简单,只需要在form标签叫上enctype="multipart/form-data"即可,剩余工作便都交给浏览器去完成数据收集并发送Http请求.但是 ...

  5. Android HttpURLConnection And HttpClient

    Google的工程师的一个博客写到: HttpURLConnection和HttpClient Volley HTTP请求时:在Android 2.3及以上版本,使用的是HttpURLConnecti ...

  6. android中的HttpURLConnection和HttpClient实现app与pc数据交互

    自学android的这几天很辛苦,但是很满足,因为每当学到一点点知识点都会觉得很开心,觉得今天是特别有意义的,可能这个就是一种莫名的热爱吧. 下面来说说今天学习的HttpURLConnection和H ...

  7. android 网络编程之HttpURLConnection与HttpClient使用与封装

    1.写在前面     大部分andriod应用需要与服务器进行数据交互,HTTP.FTP.SMTP或者是直接基于SOCKET编程都可以进行数据交互,但是HTTP必然是使用最广泛的协议.     本文并 ...

  8. Android网络连接之HttpURLConnection和HttpClient

    1.概念   HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.在 JDK 的 java.net 包中 ...

  9. HttpURLConnection和HttpClient

    HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.在 JDK 的 java.net 包中已经提供了访问 ...

随机推荐

  1. Unity3D脚本语言UnityScript初探

    译者注: Unity3D中支持三种语言:JavaScript.C#.Boo,很多人不知道如何选择,通过这篇译文,我们可以搞清楚这三者语言的来龙去脉,对选择主语言有一定的借鉴意义. 首先,Unity是基 ...

  2. spring报nested exception is java.lang.IllegalArgumentException: @EnableAsync annotation metadata was not injected错误

    http://www.oschina.net/question/1539472_159699

  3. 为网站添加ico图标

    1.将目标图片装换为.ico格式 在线转换工具:http://www.bitbug.net/ 2.将装换后的图标放入项目文件中,一般命名为favicon 3.在项目文件的index页面中引入 < ...

  4. abap 选择屏幕事件AT SELECTION-SCREEN

    AT SELECTION-SCREEN (1).其实就像一个FORM,所以在这个事件里声明的变量都是局部变量. (2).根据SY-UCOMM这个系统变量可以判断用户的命令 (3).在这个事件里响应的是 ...

  5. android 回调函数一:基本概念

    1.概念 客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数. 一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C ...

  6. HTML5 -1- 简介

    在介绍HTML5之前我们应该先了解一下HTML5 我想从下面开始简单了解一下HTML5 什么是HTML5??? HTML5 即HTML 5.0 版本 正式制定时间是在2014年 遵循着移动先行(前四个 ...

  7. Web应用程序系统的多用户权限控制设计及实现-首页模块【5】

    首页模块就是展示不同权限的最终结果了,在阅读这章之前若有些不明白,可看看后续的单独的权限模块,用户模块,目录模块后从整体上再看首页模块. 阅读该模块需要一定或者是比较熟练的js知识,EasyUI Ta ...

  8. 真机调试出现Could not find Developer Disk Image问题解决办法

    1.升级Xcode 2. 在使用Xcode进行真机调试的时候,有时根据真机的系统不同,会出现could not find developer disk image 错误,这是由于真机系统过高或者过低, ...

  9. 关于EntityFramework在vs2012无法引用的问题

    这段时间学习MVC,发现一个问题,我公司的电脑可以直接引用EntityFrameWork这个命名空间,但我家里面的电脑就不能直接引用,刚开始以为是我电脑配置问题,后重装电脑,发现问题并没有解决. 今天 ...

  10. 转 Android中shape中的属性大全

    <shape>            <!-- 实心 -->            <solid android:color="#ff9d77"/&g ...