java编程http协议的简单介绍

博主:adminadmin 2022-11-23 02:58:08 57

今天给各位分享java编程http协议的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用java实现基于Http协议的大文件传输

虽然在JDK的java.net包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。以下是简单的post例子:Stringurl="bbslogin2.php";PostMethodpostMethod=newPostMethod(url);//填入各个表单域的值NameValuePair[]data={newNameValuePair("id","youUserName"),newNameValuePair("passwd","yourPwd")};//将表单的值放入postMethod中postMethod.setRequestBody(data);//执行postMethodintstatusCode=httpClient.executeMethod(postMethod);//HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发//301或者302if(statusCode==HttpStatus.SC_MOVED_PERMANENTLY||statusCode==HttpStatus.SC_MOVED_TEMPORARILY){//从头中取出转向的地址HeaderlocationHeader=postMethod.getResponseHeader("location");Stringlocation=null;if(locationHeader!=null){location=locationHeader.getValue();System.out.println("Thepagewasredirectedto:"+location);}else{System.err.println("Locationfieldvalueisnull.");}return;}详情见:/developerworks/cn/opensource/os-httpclient/

java使用Http协议发请求报文?

1.java.net.Socket 中有一个接口叫 PackageReceiver 你创建一个类继承自PackageReceiver

2.自己写一个类ConnectToHost 定义一些常量如

public ConnectToHost()

{

port = 0;

keepAlive = false;

lastCommTime = 0;

connectionCtrl = false;

maxConnection = 10;

connections = new ArrayList();

soTimeOut = 0;

inUsedConnection = 0;

alive = true;

dual = true;

reconnectImmediately = false;

pollingWeight = 1;

}

3.写一个方法用来获取本地要发送的数据,如

private static String getRequestData(String name) throws IOException {

// TODO Auto-generated method stub

File testReq = new File("E:/virturlSend/", name);

// 输入流

FileInputStream infile = null;

InputStreamReader isr = null;

BufferedReader in = null;

String strLine = "";

StringBuffer strTotalLine = new StringBuffer();

try {

infile = new FileInputStream(testReq); // 以流的方式读配置文件

isr = new InputStreamReader(infile);

in = new BufferedReader(isr);

for (int iLine = 1; (strLine = in.readLine()) != null; iLine++) { // 从上传文件中每次读一行

// System.out.println(strLine.getBytes());

strTotalLine.append(strLine);

}

} catch (Exception ee) {

} finally {

in.close();

isr.close();

infile.close();

}

return strTotalLine.toString();

// return "baoyy";

}

4.设置主机信息 如

ConnectToHost connectToHost = new ConnectToHost();

//connectToHost.setHostAddr("20.*2.*.35");

//connectToHost.setPort(27098);

connectToHost.setHostAddr("127.*.*.1");

connectToHost.setPort(6789);

connectToHost.setMaxConnection(20);

5.发送数据

service.addConnectToHost(connectToHost);

以上代码不是全部 仅提供大体思路和构架 不知道能不能帮到您

北大青鸟java培训:http协议请求处理过程?

随着互联网的不断发展,用户在访问互联网的时候使用的终端设备类型也在不断的变化,但是这些都是基于http协议来实现的,下面我们就简单分析一下,http发送请求的处理过程。

HTTP协议是基于TCP协议的,所以它使用面向连接的方式发送请求,通过stream二进制流的方式传给对方。

当然,到了TCP层,它会把二进制流变成一个的报文段发送给服务器。

在发送给每个报文段的时候,都需要对方有一个回应ACK,来保证报文可靠地到达了对方。

如果没有回应,那么TCP这一层会进行重新传输,直到可以到达。

同一个包有可能被传了好多次,但是HTTP这一层不需要知道这一点,因为是TCP这一层在埋头苦干。

TCP层发送每一个报文的时候,都需要加上自己的地址(即源地址)和它想要去的地方(即目标地址),将这两个信息放到IP头里面,交给IP层进行传输。

IP层需要查看目标地址和自己是否是在同一个局域网。

如果是,就发送ARP协议来请求这个目标地址对应的MAC地址,然后将源MAC和目标MAC放入MAC头,发送出去即可。

如果不在同一个局域网,就需要发送到网关,还要需要发送ARP协议,来获取网关的MAC地址,然后将源MAC和网关MAC放入MAC头,发送出去。

网关收到包发现MAC符合,取出目标IP地址,根据路由协议找到下一跳的路由器,获取下一跳路由器的MAC地址,将包发给下一跳路由器。

这样路由器一跳一跳终于到达目标的局域网。

这个时候,后一跳的路由器能够发现,目标地址就在自己的某一个出口的局域网上。

于是,在这个局域网上发送ARP,获得这个目标地址的MAC地址,将包发出去。

目标的机器发现MAC地址符合,就将包收起来;发现IP地址符合,根据IP头中协议项,知道自己上一层是TCP协议,于是解析TCP的头,里面有序列号,IT培训建议需要看一看这个序列包是不是我要的,如果是就放入缓存中然后返回一个ACK,如果不是就丢弃。

TCP头里面还有端口号,HTTP的服务器正在监听这个端口号。

于是,目标机器自然知道是HTTP服务器这个进程想要这个包,于是将包发给HTTP服务器。

HTTP服务器的进程看到,原来这个请求是要访问一个网页,于是就把这个网页发给客户端。

JAVA程序的底层是如何调用http协议通讯?是不是调用操作系统的接口?高手谢谢

http是一种协议,如果我们要在使用http协议的网络上进行数据传输,就必须遵循这种协议规则。

java可以用socket进行数据传输,但是数据的格式必须遵循http协议。

也可以使用封装好的类例如URLConnection,或者HttpURLConnection。

数据最终要通过网卡发送出去,所以要调用系统驱动发送,但是这些应该是JVM去实现的,因为java是跨平台的,java字节码与操作系统之间有个桥梁就是JVM,而不同的操作系统对应不同的JVM,但是这些JVM都可以用于解析字节码,调用底层硬件实现功能。

现在想用java编写一个C/S的应用,用HTTP协议怎么处理通信??

如果使用http协议的话,可以使用xml或者json数据格式。

预先制定报文的格式,客户端和服务器程序解析报文后进行逻辑处理。

java 如何实现 http协议传输

Java 6 提供了一个轻量级的纯 Java Http 服务器的实现。下面是一个简单的例子:

public static void main(String[] args) throws Exception{

 HttpServerProvider httpServerProvider = HttpServerProvider.provider();

 InetSocketAddress addr = new InetSocketAddress(7778);

 HttpServer httpServer = httpServerProvider.createHttpServer(addr, 1);

 httpServer.createContext("/myapp/", new MyHttpHandler());

 httpServer.setExecutor(null);

 httpServer.start();

 System.out.println("started");

}

static class MyHttpHandler implements HttpHandler{

 public void handle(HttpExchange httpExchange) throws IOException {

String response = "Hello world!";

httpExchange.sendResponseHeaders(200, response.length());

OutputStream out = httpExchange.getResponseBody();

out.write(response.getBytes());

out.close();

 }

}

然后,在浏览器中访问

关于java编程http协议和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。