在csdn里答复一个网友的实例代码
一下代码是通过socket请求一个HTTP服务的过程,通过模拟请求一个web的登录操作,然后处理服务器返回的消息。这里只是简单的打印出服务器返回的消息,可以根据需要解析相应的数据,根据数据状态处理你的业务逻辑。只是简单的实现你的要求,没有考虑程序的健壮性,如关闭流应该放在finally里面等。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* SocketHttpTest.java V1.0 2012-4-12 上午10:33:07
*
* Copyright 2011 **** Technologies. All rights reserved.
*
* Modification history(By Time Reason):
*
* Description:
*/
public class SocketHttpTest {
/**
*
* <pre><b>功能描述:</b>程序入口
*
* @author :****(Kevin.xie)
* <b>创建日期 :</b>2012-4-12 上午10:33:10
*
* @param args
*
* <b>修改历史:</b>(修改人,修改时间,修改原因/内容)
*
* </pre>
*/
public static void main(String args[]) {
try {
// Post请求格式如下:
String postParams = "userName=kevin.xie&pwd=demo8888";
int paramsLen = postParams.length();
// 请求的参数
StringBuffer post = new StringBuffer(512);
// web的请求登录路径:demo为项目名称,user/login.do为登录的action
post.append("POST /demo/user/login.do HTTP/1.1\r\n");
// tomcat服务器及端口
post.append("Host: 127.0.0.1:8080\r\n");
post.append("Accept: text/html\r\n");
post.append("Connection: Close\r\n");
post.append("Content-Length: " + paramsLen + "\r\n");
post.append("Content-Type: application/x-www-form-urlencoded\r\n");// *
post.append("\r\n");
// 请求的参数
post.append(postParams);
// socket客户端连接本机的tomcat服务器,端口为8080
Socket socket = new Socket("127.0.0.1", 8080);
// socket客户端发送登录请求
PrintWriter outWriter = new PrintWriter(socket.getOutputStream());
// 发送post请求
outWriter.println(post);
outWriter.flush();
// socket客户端接收tomcat返回的数据
BufferedReader inReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 一下是服务器返回的数据--本机demo返回的是json更是的数据
System.out.println("**************** Server responsed ****************");
String tmp = "";
while ((tmp = inReader.readLine()) != null) {
// 解析服务器返回的数据,做相应的处理
System.out.println(tmp);
}
outWriter.close();
inReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以下是tomcat服务器返回的数据
Server: HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Set-Cookie: JSESSIONID=9F51D84CDDB13004291EC883FD77A65E; Path=/demo/; HttpOnly Content-Type: application/json;charset=UTF-8 Content-Language: zh-CN Content-Length: 108 Date: Thu, 12 Apr 2012 03:14:05 GMT Connection: close {"struts.token":"FOZAQPTQPOIECS6H605BQ5Q0Z8MJ875O_1334200445717","AjaxResult":"0","values":{"errMsg":""}}
- 大小: 48.5 KB
分享到:
相关推荐
本文实例讲述了C#基于socket模拟http请求的方法。分享给大家供大家参考。具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; ...
采用JAVA的socket实现http协议,模拟浏览器访问服务端。
在使用Socket模拟HTTP请求时,我们首先需要创建一个Socket实例,连接到指定的Web服务器IP地址和端口号(通常是80)。然后,我们将HTTP请求以字符串形式构造,包括上述的请求行、头部和可能的请求体。接下来,我们将...
在Android平台上,我们可以利用Socket编程来模拟一个简单的HTTP服务器,以提供本地文件系统中的资源,如HTML文件,供外部设备(如浏览器)访问。这个过程涉及到Android系统的网络权限管理、Socket编程以及HTTP协议的...
本主题聚焦于“socket http/https 模拟登录 请求页面”,这些概念都是网络编程中的核心元素。以下是对这些概念的详细解释: **Socket**: Socket是网络通信的基本构建块,它提供了一个低级别的接口,允许程序通过...
Socket测试工具、模拟通信测试
这个工具就是一个能在线模拟socket通讯工具,并且能检测通讯是否能正常响应和发送信息
在本文中,我们将深入探讨Socket模拟服务器的相关知识点,以及如何实现网络通讯数据的接收和处理。 首先,Socket是一种网络通信协议接口,它允许应用程序通过网络进行双向通信。在Java中,Socket类和ServerSocket类...
它允许研发者模拟各种HTTP请求,包括GET、POST、PUT、DELETE等多种方法,以便于验证服务器端的接口功能是否正常工作。下面将详细阐述Postman的主要特点和使用方法。 1. **请求模拟**: - GET请求:用于获取资源,...
在我们的"JAVA socket 模拟聊天室"项目中,服务器端需要使用`ServerSocket`监听特定端口,等待客户端的连接请求。一旦客户端使用`Socket`发起连接,服务器端的`accept()`方法将阻塞直到连接建立。连接建立后,双方就...
在这个场景中,"TCP socket请求报文发送工具"是一种实用的软件工具,它能够帮助用户模拟TCP请求或者执行简单的socket请求,无需安装,属于绿色便携版。 首先,TCP请求报文的结构包括以下几个主要部分: 1. **源...
总结起来,"Socket模拟客户端与服务端"的实践涉及到TCP协议、Socket编程以及两端的交互逻辑。通过"WindowsApplication1"和"WindowsApplication2"这两个应用程序,我们可以学习到如何在Windows环境下实现TCP Socket...
本文将基于提供的标题“模拟http服务器(socket使用)”和描述,深入探讨如何使用Socket来构建一个简单的HTTP服务器。我们将涵盖以下几个关键点: 1. **HTTP协议基础**: HTTP(超文本传输协议)是互联网上应用最...
以下是一个简单的PHP Socket模拟POST请求的示例代码: ```php function socket_post($url, $data, $referer='') { if (!is_array($data)) { return; } $data = http_build_query($data); $url = parse_url($...
在现代网络开发中,使用PHP进行Socket编程是一种常见的需求,尤其在模拟HTTP请求方面。本文将深入探讨如何使用PHP的Socket编程来模拟HTTP的GET和POST请求。我们将从一个PHP类开始,该类能够构建HTTP请求并处理响应,...
博客:【安卓学习之工具学习】网络通信测试工具-socket/post/get 的附件,博客连接为:http://blog.csdn.net/ljb568838953/article/details/52493675 附件里面含: fiddlersetup_v4.6.2.0.32002.exe NetAssist_v4.2....
"socket模拟http"是指使用Socket API来实现HTTP协议的功能。在本项目中,开发者使用了Visual C++ 6.0(VC6.0)作为开发工具,这是一款经典的C++集成开发环境。 HTTP(超文本传输协议)是互联网上应用最广泛的一种...
编写一个网络服务器的模拟程序: 从一个SOCKET监听网络请求,并进行处理. 网络用户可发来四类请求A/B/C/D/E. 每个类请求分别用一个函数处理. A请求的处理函数是睡眠1秒钟, B请求的处理函数是睡眠2秒钟, C请求的处理...
在实际应用中,Socket编程涉及的概念和技术还包括套接字的创建、绑定、监听、接受、连接、读写操作,错误处理,多线程/多进程并发处理,以及更高级的特性如TCP的长连接、HTTP/HTTPS协议等。熟练掌握Socket编程,将为...