客户端部分代码:
public String requestV8Api(String params, String mothodName)
{
String result = null;
String errcode = "";
HttpURLConnection conn = null;
String apiUrl = (new StringBuilder(String.valueOf(Configuration.getString("apiURL")))).append("/v8ApiServer").append("/v8ApiServer").toString();
URL url = ApiUtil.getUrl(apiUrl);
try
{
conn = (HttpURLConnection)url.openConnection();
conn.setConnectTimeout(1000000);
conn.setReadTimeout(1000000);
conn.setDoOutput(true);
/**如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。**/
conn.setDoInput(true);
/**如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。**/
/**在请求的header中写入信息 start**/
conn.setRequestMethod("POST");
conn.setRequestProperty("mothodName", mothodName);
conn.setRequestProperty("Content-type", "application/octest-stream");
conn.setRequestProperty("apiversion", "1.0");
String publickey = Configuration.getString("publickey");
conn.setRequestProperty("publickey", publickey);
conn.setRequestProperty("privatekey", "v8Online");
String appid = Configuration.getString("appid");
conn.setRequestProperty("appid", appid);
/**在请求的header中写入信息 end**/
OutputStream out = conn.getOutputStream();
/**返回写入到此连接的输出流**/
ObjectOutputStream objStream = new ObjectOutputStream(out);
objStream.writeObject(params);
/**用于往请求中写入数据发送给服务器端,服务器端通过getInputStream().readObject()方法得到客户端输入的数据流*/
objStream.flush();
objStream.close();
out.close();
conn.getOutputStream().flush();
conn.getOutputStream().close();
InputStream in = conn.getInputStream();
/**返回从此打开的连接读取的输入流**/
int responseCode = conn.getResponseCode();
if(200 != responseCode)
{
errcode = "4";
System.out.print((new StringBuilder("\u670D\u52A1\u5668 HTTP \u72B6\u6001\u7801\uFF1A")).append(responseCode).toString());
result = (new StringBuilder("result:{errcode:")).append(errcode).append("}").toString();
}
ObjectInputStream back = new ObjectInputStream(in);
result = (String)back.readObject();
/**用于从读取服务器端通过getOutputStream().writeObject()方法写入response中的数据流**/
back.close();
in.close();
}
catch(IOException e)
{
errcode = "1";
result = (new StringBuilder("result:{errcode:")).append(errcode).append("}").toString();
}
catch(ClassNotFoundException e)
{
errcode = "1";
result = (new StringBuilder("result:{errcode:")).append(errcode).append("}").toString();
}
return result;
}
服务器端部分代码:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(req.getInputStream()));
/**用于从获得从客户端通过getOutputStream().writeObject()方法写入的数据流**/
Log log = LogFactory.getLog(getClass());
String result = null;
try
{
String params = (String)in.readObject();
/**用于从获得从客户端通过getOutputStream().writeObject()方法写入的数据流**/
System.out.println(params);
CallMothodController controller = new CallMothodController();
Map paramsMap = controller.params(params);
SYSParamBean bean = new SYSParamBean();
bean.setApi_version(req.getHeader("apiversion"));
bean.setApp_id(req.getHeader("appid"));
bean.setMothodName(req.getHeader("mothodName"));
log(req.getHeader("mothodName"));
bean.setPrivate_key(req.getHeader("privatekey"));
bean.setPublic_key(req.getHeader("publickey"));
String errCode = controller.checkJurisdiction(bean);
if ("".equals(errCode)) {
result = controller.getMothodObject(bean.getMothodName(), paramsMap);
in.close();
out = new ObjectOutputStream(resp.getOutputStream());
out.flush();
out.writeObject("result:{content:" + result + ",errcode:[]" + "}");
out.close(); return;
}
in.close();
ObjectOutputStream out = new ObjectOutputStream(resp.getOutputStream());
/**打开response的输出流**/
out.flush();
out.writeObject("result:{errcode:" + errCode + "}");
/**向响应response中写入数据**/
out.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
分享到:
相关推荐
本文将深入探讨如何将串口数据转换为HTTP协议数据,并将其发送到云端,以及源码软件的跨平台特性。 串口通信,也称为UART(通用异步收发传输器),是一种常见于嵌入式系统、单片机和计算机中的接口,用于设备间的...
【基于STM32F103单片机,配合HTTP协议上传数据到服务器】的知识点主要涵盖以下几个方面: 1. **STM32F103单片机**:STM32是意法半导体(STMicroelectronics)推出的一种基于ARM Cortex-M3内核的微控制器系列。STM32...
总的来说,WFETH HTTP协议发送工具是一个强大且实用的工具,它提供了对HTTP协议的精细控制,使得用户能够在各种网络场景下进行灵活的测试和操作。了解并熟练掌握这类工具,对于提升网络开发和运维的专业技能至关重要...
在STM32上实现CoAP协议发送数据,首先需要对STM32的串行通信接口进行配置,通常是USART或UART,以便与BC35-NB模组进行AT命令交互。AT命令是控制无线调制解调器的标准命令集,用于设置参数、建立连接、发送数据等操作...
3. 构建HTTP请求:根据HTTP协议规范,构造一个包含方法(GET或POST)、URL、HTTP版本、头部和可选的请求体的HTTP请求。对于JSON数据,通常使用POST方法,将JSON数据作为请求体发送。 4. 序列化JSON数据:使用cJSON...
在IT行业中,网络通信是应用程序之间进行数据交换的关键部分,而HTTP(超文本传输协议)则是互联网上应用最广泛的一种网络协议。C#作为一种强大的编程语言,提供了丰富的库和工具来支持HTTP通信,特别是对于POST请求...
STM32与SIM800C模块的整合是嵌入式系统中常见的一种通信...通过HTTP协议发送定位信息,使得数据能够实时上传到云端,为物联网应用提供了便利。理解并掌握这种技术,对于深入理解嵌入式系统和物联网架构有着重要的意义。
总结起来,HTTP协议是互联网上数据交换的基础,而数据网络则是这一切得以实现的物理和逻辑架构。理解这两者的工作原理对于网络开发和运维人员至关重要。通过深入学习和实践,我们可以更好地优化网络性能,解决网络...
- **客户端发起请求**:客户端通过HTTP协议向服务器发送请求。 - **服务器接收请求**:服务器通过`ServerSocket`监听并接收客户端的连接请求。 - **创建连接**:服务器为每个连接创建新的`Socket`实例。 - **读取...
C#作为一种强大的编程语言,提供了丰富的类库来实现网络通信功能,如监听指定端口和向特定端口发送数据。这里我们将深入探讨如何利用C#进行UDP和TCP通信。 首先,让我们了解基本概念: 1. **监听(Listening)**:...
在HTTP协议中,客户端通过POST或GET方法发送数据,POST用于提交表单数据,GET则用于获取资源。 三、接收数据 服务器处理完客户端的请求后,会返回相应的数据给客户端。这可能是网页内容、文件、数据库结果或其他...
为了在iOS开发中利用HTTP协议发送网络请求,开发者可以使用一些常用的网络框架,例如Alamofire或者URLSession。这些框架封装了HTTP请求的复杂性,提供了简洁的API来发送GET、POST等类型的请求,并处理响应数据。 ...
这个协议是基于请求与响应模型的,允许用户代理(如浏览器)向Web服务器发送请求,并接收服务器返回的数据。 HTTP协议的工作原理: 1. 请求过程:当用户在浏览器中输入URL并按下回车键时,浏览器作为客户端(Client...
- **发送数据**: 使用`HttpSendRequest()`函数发送POST数据,这里的数据通常是URL编码后的字符串。 - **接收响应**: 通过`InternetReadFile()`函数读取服务器返回的响应,直到没有更多数据为止。 2. **XML解析**...
4. 网络通信:C语言中可以使用socket编程接口来实现TCP/IP或HTTP协议,处理连接建立、数据发送和接收、断开连接等操作。 5. 错误处理:在实现过程中,应充分考虑各种异常情况,如网络中断、数据解析错误等,并提供...
HTTP协议是基于TCP/IP通信协议来传输数据的,主要负责客户端(浏览器)与服务器之间的通信。在Web开发和网络编程中,对HTTP协议的理解和运用至关重要。 HTTP协议采用了请求/响应模型。在这个模型中,客户端(通常是...
3. **发送数据**:当连接成功后,可以调用`writeData:withTimeout:tag:`方法发送数据。数据通常以NSData对象的形式提供,标签用于识别不同的数据包。 监听指定端口: 1. **创建服务器Socket**:在iOS设备上,你...
HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此存在安全性问题。 HTTP协议观察工具的主要功能包括: 1. 请求和响应捕获:工具可以捕获浏览器或应用程序发出的所有HTTP请求和服务器返回的响应,包括...
综上所述,使用HTTP协议进行数据采集并存储到MySQL数据库中,涉及的知识点包括HTTP协议的工作原理、数据采集的方法、MySQL数据库的管理与操作、Windows服务程序的配置,以及数据处理和存储的最佳实践。理解并掌握...
POST请求常用于向服务器发送数据,例如表单提交,非常适合用于数据库写入操作。POST请求的数据包含在请求体中,因此可以处理大量数据,而不像GET请求那样受到URL长度限制。 2. **HTTP请求结构**: - 一个HTTP请求...