java url访问服务器地址_JAVA实现对服务器的访问的两种方法

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 p2=newArrayList();

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值