JAVA实现对服务器的访问的两种方法
来源:互联网 发布:java的运行环境 编辑:程序博客网 时间:2024/05/01 21:25
JAVA实现对服务器的访问:
- -
GET
HttpURLConnection HttpClient
POST
HttpClient为例
GET
一、 HttpURLConnection
步骤:
1.指定数据的网路路径
URL url=new URL(“http://localhost:8080/..../....”);
2.打开连接,返回一个HttpURLConnection类型对象,对返回对象进行强转。
HttpURLConnectionconn=(HttpURLConnection)url.openConnection();
3.设置连接参数
conn.setRequestMethod(“SET”);//这里有SET和GET两种方法。见下一篇博客。conn.setReadTimeout(5000);//设置响应时间,不然程序在等不到返回值时会一致等待。conn.setDoInput(true);//打开读取的管道conn.setDoOutput(true);//打开网服务器写数据的通道。良好的变成习惯建议两个都设置好。
4.判断网络请求返回码是否可以访问
if(conn.getResponseCode==200){ //如果返回码==200,执行下载操作 //获得读取流 InputStream is=conn.getInputStream(); //然后可以写入内存, ByteArrayOutputStream baos=newByteArrayOutputStream();//也可以写入本地FileOutputStream fos=new FileOutputStream(“本地地址”);byte b[]=new byte[];int a=0;//a为写入b[]数组的长度。while((a=is.read(b))!=-1)//假设以-1结尾。{ fos.write(b,0,a); fos.flush();}Sytem.out.println(“下载成功!”);}
二、 HttpClient(第三方库)
由于步骤类似,下面加入端口回调和线程实现
步骤:
public interface CallBack{ public void load(byte b[])’}public static void getMessage(final String path,final CallBackcallback){ new Thread(new Runnable(){ public void run(){ HttpClient client=newDefaultClient(); //获得get请求 HttpGet get=new HttpGet(path); //执行get请求,返回响应对象 HttpResponseres=client.execute(get); //判断网络返回码 if(res.getStatusLine().getStatusCode()==200){ //获得实体对象 HttpEntityentity=res.getEntity(); //返回字节数组 byteb[]=EntityUtils.toByteArray(entity); callback.load(b); } } }).start();}public static void main(String args[]){ String path=””; HttpUtils uilt=newHttpUtils(); util.getMessage(path,newCallBack(){ public void load(byteb[]) { //获取字节流 } });}
POST
public staticvoid getStringPost(final String path,fina CallBack callback){ new Thread(new Runnable(){ HttpClient client =newDefaultHttpClient(); HttpPost post=new HttpPost(path); //封装键值对 NameValuePair p1=new BasicNameValuePair(“username”,”admin”); NameValuePair p2=new BasicNameValuePair(“password”,”123”); List<NameValuePair> p2=newArrayList<NameValuePair>(); list.add(p1); list.add(p2); //将集合转成HttpEntity对象 HttpEntity entity=new UrlEncodedFormEntity(list); post.setEntity(entity); //执行post HttpResponse res=client.execute(post); //判断返回码 if(res.getStatusLine().getStatusCode()==200) { // 获得字节流信息 //调用接口}}).start();}
GET请求传值时候会在URL里显示。
POST请求将数据封装到NameValuePair里,再把NameValuePair传入集合,封装成entity进行传输。
0 0
- JAVA实现对服务器的访问的两种方法
- java实现多线程的两种方法
- java实现多线程的两种方法
- JAVA多线程的两种实现方法
- java 定时器实现的两种方法
- Java线程的两种实现方法
- java实现多线程的两种方法
- java实现多线程的两种方法
- java两种实现线程的方法
- Map读取键值对,Java遍历Map的两种实现方法
- Map读取键值对,Java遍历Map的两种实现方法
- 对字符的替换的两种方式Java实现
- java 对map或hashmap排序的两种方法
- [java]NIO服务器(ServerSocketChannel)开发的两种实现方式
- 有效创建oracle dblink 的两种方式(实现不同服务器上数据库的访问)
- Java 实现对VF数据库的访问
- C51编程中对单片机绝对地址访问的两种方法
- Android访问Wcf的两种方法
- Java中的属性和字段有什么区别
- 输入1-9的数字,组成没有重复数字的三位数
- Git使用手册:常见问题集锦(本文持续更新)
- EMV 与 chip and pin
- 关于AIX操作系统中LUN的队列深度(queue_depth)
- JAVA实现对服务器的访问的两种方法
- XXX.jar has no source attachment 解决方法
- 多个slider的应用
- osg学习第二篇:矩阵(二)
- hdu 1212 Big Number
- 啊哈C——学习7.3字符的本质
- Android加载中动画,仿58同城,美团效果
- undefined reference to main
- ListView之BaseAdapter的基本使用以及ViewHolder模式