HTTP客户端和服务端

本文详细介绍了一种基于Java的HTTP客户端与服务端的实现方式,包括如何使用HttpClient进行POST请求,以及服务端如何接收和处理请求数据。通过具体代码示例,展示了设置请求头、发送请求、读取响应等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

httpclient客户端

package com.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class HttpClient {
	public String client(){
		String result ="";
		try {
			String xmlInfo ="";
			BufferedReader br = null;
			URL url = null;
		    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		    String urlStr = "http://localhost:8081/csp/c_csvc/c_csvcOfmessageRepeaters.action";
		    //http+XML+post方式
		    url = new URL(urlStr); //接口地址
		    //URLConnection con=url.openConnection();   //创建连接
		    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
		    conn.setRequestMethod("POST");
		    conn.setDoOutput(true);
		    conn.addRequestProperty("Content-type",
		            "text/xml; charset=ISO-8859-1");
		    // 默认超时时间30秒
		    conn.setConnectTimeout(30000);
		    OutputStreamWriter out = new OutputStreamWriter(
		            conn.getOutputStream());
		    //输入流,写参数,flush推送参数内容过去给第三方系统
		    out.write(new String(xmlInfo.getBytes("GBK")));
		    out.flush();
		    out.close();
		    
		    br = new BufferedReader(
		            new InputStreamReader(conn.getInputStream())); //获取接口响应信息  
		    String line = "";
		    StringBuffer sb = new StringBuffer();
		    for (line = br.readLine(); line != null; line = br.readLine())
		    {
		        sb.append(line);
		    }
		    
		    result = sb.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}	
}

httpclient服务端

package com.test;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HttpServer extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		super.doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		server2(req);
	}

	public void server1(HttpServletRequest req) throws IOException {
		// 判断请求报文是否来自代维系统的ip地址
		String ip = req.getRemoteHost();
		// 获取收到的报文
		BufferedReader reader = req.getReader();
		String line = "";
		StringBuffer inputString = new StringBuffer();
		while ((line = reader.readLine()) != null) {
			inputString.append(line);
		}
		//开始处理逻辑
	}

	public void server2(HttpServletRequest req) throws IOException {
		// 接收请求转发消息
		BufferedInputStream in = new BufferedInputStream(req.getInputStream());
		byte[] bts = new byte[50000];
		int totalLen = 0, len = 0;
		while ((len = in.read(bts, totalLen, 1000)) != -1) {
			totalLen += len;
		}
		String request = new String(bts).toString().trim();
		//开始处理逻辑
	}

}


HTTP(超文本传输协议)是一个用于在因特网上传输超文本数据的协议。 HTTP客户端和服务源码是指实现HTTP协议的程序代码, HTTP客户端与服务器之间进行通信和数据传输, HTTP服务通过监听口和处理请求对外提供服务。 HTTP客户端程序的主要功能是与HTTP服务器建立连接、发送HTTP请求、接收HTTP服务器的响应,并根据响应处理数据。客户端程序可以用各种编程语言实现,比如Python、Java、C#等,通常会使用HTTP协议库来实现GET、POST、PUT和DELETE等HTTP请求方法。常用的HTTP协议库包括Python中的requests和urllib库、Java中的HttpURLConnection和Apache HttpClient等。 HTTP服务程序的主要功能是接收来自HTTP客户端的请求,根据请求执行相应的动作或返回数据,以完成一定的业务逻辑。通常,HTTP服务器要具备登录验证、会话管理、权限控制等功能来保障系统的安全。HTTP服务程序可以用PHP、Java、C#和Python等语言实现,以Apache、Nginx等Web服务器软件为基础搭建而成。 在实现HTTP服务客户端时,需要掌握HTTP协议的请求格式和响应格式,以及常见的HTTP状态代码和头部信息,同时还需要了解HTTP的一些重要概念和原理,比如HTTP的缓存机制、重定向机制、Cookie、Session、HTTPS等内容。 总之,HTTP客户端和服务源码的实现需要程序员掌握HTTP协议的相关知识,以及熟练掌握编程语言和库的实现方式。编写高质量的HTTP客户端和服务程序,能够有效提高Web应用的性能、安全性和稳定性,从而为用户提供更好的使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值