HTTP协议报文、工作原理及Java中的HTTP通信技术详解
一、web及网络基础







class ReadByGet extends Thread{
    @Override
    public void run(){
        URL url = new URL("网址");//如果有参数,在网址中携带参数
        URLConnection conn = url.openConnection();
        InputStream is = conn.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        String line;
        StringBuilder builder = new StringBuilder();
        while((line=br.readLine())!=null){
              builder.append(line);
        }
        br.close();
        isr.cloae();
        is.close();
        System.out.println(builder.toString);
    }
}
public static void main(String[] args){
    new ReadByGet().start();
} 
2、使用HTTP的Post方式与网络交互通信
Class ReadByPost extends Thread{
     @override
     public void run(){
         URL url = new URL("网址");
         HttpURLConnection conn = (HttpURLConnection)url.openConnection();
         conn.addRequestProperty("encoding","UTF-8");
         conn.setDoInput(true);
         Conn.setDoOutput(true);
         conn.setRequestMethod("POST");
         OutputStream os = conn.getOutputStream();
         OutputStreamWriter osw = new OutputStreamWriter(os);
         BufferedWriter bw = new BufferedWriter(osw);
         bw.write("向服务器传递的参数");
         bw.flush();
         InputStream is = conn.getInputStream();
         InputStreamReader isr = new InputStreamReader(is);
         BufferedReader br = new BufferedReader(isr);
         String line;
         StringBuilder builder = new StringBuilder();
         while((line = br.readLine())!=null){
              builder.append(line);
         }
         //关闭资源
         System.out.println(builder.toString);
     }
}
public static void main(){
     new ReadByPost().start();
}
3、使用HttpClient进行Get方式通信
- class Get extends Thread{ HttpClient client = HttpClients.createDefault();
 @Override
 public void run(){ HttpGet get = new HttpGet("http://www.baidu.com"); HttpResponse response = client.execute(get);
 HttpEntity entity = response.getEntity();
 String result = EntityUtils.toString(entity,"UTF-8"); System.out.println(result); }
 }
 public static void main(String[] args){
 new Get().start();
 }- 4、使用HttpClient进行Post方式通信 
class Post extends Thread{
    HttpClient cilent = HttpClients.CreateDefault();
    @Override
    public void run(){
        HttpPost post = new HttpPost("网址");
        //设置要传的参数
        List<BasicNameValuePair> parameters = new ArratList();
        parameters.add(new BasicNameValuePair("key","value"));
        post.setEntity(new UrlEncodeFormEntity(parameters,"UTF-8"));
        HttpResponse response = client.execute(post);
        HttpEntity entity = response.getEntity();
        String result = EntityUtils.roString(entity,"UTF-8");
        System.out.println(result);
    }
}
main(){
    new Post().start();
}
HTTP协议报文、工作原理及Java中的HTTP通信技术详解的更多相关文章
- Java中的HTTP通信技术详解
		1.使用HTTP的Get方式读取网络数据 class ReadByGet extends Thread{ @Override public void run(){ URL url = n ... 
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
		java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了! 社区福利快来领取免费参加MDCC大会机会哦 Tag功能介绍—我们 ... 
- Java中的main()方法详解
		在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ... 
- Java I/O : Java中的进制详解
		作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层. ... 
- JAVA中的GC机制详解
		优秀Java程序员必须了解的GC工作原理 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只 ... 
- JAVA中synchronized和lock详解
		目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea.本文并不比较synchronize ... 
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
		上一篇说的是一个简单的应用,说明JNI是怎么工作的,这一篇主要来说一下,那个本地方法sayHello的参数的说明,以及其中方法的使用 首先来看一下C++中的sayHello方法的实现: JNIEXPO ... 
- 转:Java中的Clone()方法详解
		Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ... 
- java中list和map详解
		一.概叙 List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口, List下有ArrayList,Vector,LinkedList Set下有HashSet ... 
随机推荐
- Arc Engine 中添加气泡提示框
			一.在ArcMap中的定位操作 已知若干点的经纬度坐标,要求在地图中进行定位: 1.通过Tool >Add X Y data 定位点,注意选择地理坐标系下的wgs 1984坐标系: 2.定位后的 ... 
- java文件过滤器
			java中有一个FilenameFilter的接口,能够过滤得到指定类型的文件或者目录,其中必须重写accept(File file,String path)方法 public class DirFi ... 
- HDU 1025-Constructing Roads In JGShining's Kingdom(最长不降子序列,线段树优化)
			分析: 最长不降子序列,n很大o(n^2)肯定超,想到了小明序列那个题用线段树维护前面的最大值即可 该题也可用二分搜索来做. 注意问题输出时的坑,路复数后加s #include <map> ... 
- IOS  AsyncSocket
			导入AsyncSocket.h AsyncSocket.m AsyncUdpSocket.h AsyncUdpSocket.m 以及 CFNetWork.framework async ... 
- IOS-day03_OC中的get和set
			OC中的get和set实质和C#/java中的一样 只是表现形式不同而已 如下: @interface Car : NSObject { int wheels; } -(void) run; -(vo ... 
- ORA-12162: TNS:net service name is incorrectly specified
			今天在进行修改oracle_sid环境变量的时候,将相关的环境变量值去掉,从而不能进入sqlplus,报错如下: [oracle@kel ~]$ sqlplus / as sysdba SQL*Plu ... 
- Tkinter教程之Grid篇
			本文转载自:http://blog.csdn.net/jcodeer/article/details/1813196 '''Tkinter教程之Grid篇'''# Tkinter参考中最推荐使用的一个 ... 
- 机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting
			版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ... 
- quick-x在windows平台打包加密文件
			D:\quick-cocos2d-x-2.2.1-rc\bin>compile_scripts -i ..\mygames\myth\scripts -o ..\mygames\myth\res ... 
- hdfs 数据块重分布 sbin/start-balancer.sh -threshold
			数据块重分布sbin/start-balancer.sh -threshold <percentage of disk capacity>percentage of disk capa ... 
