tcp socket客户端发送请求连接http服务
来源:互联网 发布:乐淘吧淘宝天猫商城 编辑:程序博客网 时间:2024/06/05 19:59
首先模拟一个http服务端,用于接收请求
package bhpp.rsserver.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.InetSocketAddress;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import javax.net.ssl.HttpsURLConnection;import com.sun.net.httpserver.HttpExchange;import com.sun.net.httpserver.HttpHandler;import com.sun.net.httpserver.HttpServer;public class HttpServerTest { private ExecutorService pool=Executors.newCachedThreadPool(); public HttpServerTest(){ try { HttpServer server=HttpServer.create(new InetSocketAddress(6666), 3000); server.createContext("/",new Handler()); server.setExecutor(pool); server.start(); System.out.println("Http 启动..."); } catch (IOException e) { e.printStackTrace(); } } class Handler implements HttpHandler{ @Override public void handle(HttpExchange exc) throws IOException { BufferedReader reader=new BufferedReader(new InputStreamReader(exc.getRequestBody())); //用于存储请求信息 String requestMessage=reader.readLine(); System.out.println(requestMessage); String response="true"; exc.sendResponseHeaders(HttpsURLConnection.HTTP_OK, response.getBytes().length); OutputStream out=exc.getResponseBody(); out.write(response.getBytes()); out.flush(); out.close(); exc.close(); } } public static void main(String[] args) { new HttpServerTest(); }}
其次socket发送请求连接http服务
package bhpp.rsserver.test;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.InetSocketAddress;import java.net.Socket;import java.net.SocketAddress;import java.net.URLEncoder;/**TCP 客户端连接HTTP服务端 * @author cyq * */public class TcpToHttpClient{ public TcpToHttpClient() throws IOException { //sendPost(); sendGet(); } public static void main(String[] args) throws IOException { new TcpToHttpClient(); } /**post方式 * @throws IOException */ public void sendPost() throws IOException{ String path = "/"; String data = URLEncoder.encode("username", "utf-8") + "=" + URLEncoder.encode("zs", "utf-8") + "&" + URLEncoder.encode("pwd", "utf-8") + "=" + URLEncoder.encode("32", "utf-8"); SocketAddress dest = new InetSocketAddress("localhost", 6666); Socket socket = new Socket(); socket.connect(dest); OutputStreamWriter streamWriter = new OutputStreamWriter(socket.getOutputStream(), "utf-8"); BufferedWriter bufferedWriter = new BufferedWriter(streamWriter); bufferedWriter.write("POST " + path + " HTTP/1.1\r\n"); bufferedWriter.write("Host: " + "localhost" + "\r\n"); bufferedWriter.write("Content-Length: " + data.length() + "\r\n"); bufferedWriter.write("Content-Type: application/x-www-form-urlencoded\r\n"); bufferedWriter.write("\r\n"); bufferedWriter.write(data); bufferedWriter.flush(); bufferedWriter.write("\r\n"); bufferedWriter.flush(); BufferedInputStream streamReader = new BufferedInputStream(socket.getInputStream()); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(streamReader, "utf-8")); String line = null; while((line = bufferedReader.readLine())!= null){ System.out.println(line); } bufferedReader.close(); bufferedWriter.close(); socket.close(); } /**get方式 * @throws IOException */ public void sendGet() throws IOException{ String path = "/"; SocketAddress dest = new InetSocketAddress("localhost", 6666); Socket socket = new Socket(); socket.connect(dest); OutputStreamWriter streamWriter = new OutputStreamWriter(socket.getOutputStream()); BufferedWriter bufferedWriter = new BufferedWriter(streamWriter); bufferedWriter.write("GET " + path + " HTTP/1.1\r\n"); bufferedWriter.write("Host: " + "localhost" + "\r\n"); bufferedWriter.write("\r\n"); bufferedWriter.flush(); BufferedInputStream streamReader = new BufferedInputStream(socket.getInputStream()); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(streamReader, "utf-8")); String line = null; while((line = bufferedReader.readLine())!= null){ System.out.println(line); } bufferedReader.close(); bufferedWriter.close(); socket.close(); }}
0 0
- tcp socket客户端发送请求连接http服务
- socket 发送http请求
- socket发送http请求
- socket 发送http请求
- 网络协议(http/tcp/ip/socket)请求与服务
- Http连接,发送请求
- TCP、HTTP、SOCKET连接
- Socket与http、tcp客户端与服务器连接的区别!
- Socket与http、tcp客户端与服务器连接的区别!
- Socket与http、tcp客户端与服务器连接的区别!
- Socket与http、tcp客户端与服务器连接的区别!
- Socket与http、tcp客户端与服务器连接的区别!
- c socket 发送http请求
- 使用SOCKET发送HTTP请求
- c++ socket 发送HTTP请求
- java socket发送http请求
- Network:socket发送http请求
- C socket 发送HTTP请求
- [android]三步实现从右向左输入的金额输入框EditText
- Asp.net中GridView使用详解(引)转
- postgresql数据类型varchar长度
- 【Android基础知识】Fragment设计哲学和加载方式
- HTTP断点续传与断点上传之 -- 文件流操作
- tcp socket客户端发送请求连接http服务
- Eclipse下更换主题-Sublime的主题
- 百度地图 聚合功能的实现
- Java设计模式之装饰模式
- 1029. Median (25)
- Android开发应用安装出现两个相同应用的解决办法
- apache开启页面压缩
- source insight研究——正则表达式篇(转)
- oracle中delect和truncate区别