HTTP请求简要记录

一、简要记录HTTP请求过程

/**
* 发送http请求

 * @param params 请求参数map

         * @param queryUrl 请求url地址

 * @param queryMethod 方法类型"POST"或者"GET"
* @return
*/
public static String sendHttp(Map<String, String> params,String queryUrl,String queryMethod)throws Exception {
HttpClient client = new HttpClient();
StringBuilder sb = new StringBuilder();
InputStream ins = null;
String param =getRequestJson(params);//querParam;
HttpMethodBase method=null;
if("POST".equals(queryMethod.toUpperCase())){
method = new PostMethod(queryUrl);
}else{
method = new GetMethod(queryUrl);
}
try {
method.setQueryString(param);

int statusCode = client.executeMethod(method);
logger.info("返回状态码:"+statusCode);
if (statusCode == HttpStatus.SC_OK) {
ins = method.getResponseBodyAsStream();
byte[] b = new byte[1024];
int r_len = 0;
while ((r_len = ins.read(b)) > 0) {
sb.append(new String(b, 0, r_len, method.getResponseCharSet()));
}
logger.info(sb.toString());
} else {
System.err.println("Response Code: " + statusCode);
}
} catch (IOException e) {
logger.error("Fatal transport error: " + e.getMessage());
} catch (Exception e){
logger.error("Fatal protocol violation: " + e.getMessage());
}
finally {
method.releaseConnection();
if (ins != null) {
ins.close();
}
logger.info("地址:"+queryUrl);
logger.info("-------发送参数-------");
for(String key : params.keySet()){
logger.info(key + ":" + params.get(key));
}
System.out.println("返回结果:"+sb.toString());
}
String s = sb.toString();
return s;
}


/**
* 将map格式拼装成json
* @param parameters
* @return
*/
public static String getRequestJson(Map<String,String> parameters) {
StringBuffer sb = null;
try {
sb = new StringBuffer();
Set es = parameters.entrySet();
Iterator it = es.iterator();
while(it.hasNext()) {
Map.Entry entry = (Map.Entry)it.next();
String k = (String)entry.getKey();
String v = (String)entry.getValue();
if(v!=null&&!v.equals("")){
v=URLEncoder.encode(v,"UTF-8");
}
sb.append(k+"="+v+"&");
}
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString().substring(0,sb.lastIndexOf("&"));
}


二、简单调用

public static void main(String[] args) {
try {
Map<String,String> map = new HashMap<String, String>();
map.put("uid", "001");
String result = sendHttp(map,"http://xxxxxxxx","POST");

                        logger.info("返回参数:"+rresult);

} catch (Exception e) {
e.printStackTrace();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当用户发出请求时,程序会首先对请求进行解析和验证,以确保请求是合法的。然后,程序会根据请求的类型,执行相应的处理逻辑。这可能包括检索数据库中的信息,或与其他系统进行通信,以获取需要的数据。最后,程序会将处理结果以响应的形式发送给用户。因此,整个请求处理过程可以概括为解析请求,执行处理,发送响应。 ### 回答2: 当用户发送一个请求时,程序会按照以下步骤进行处理: 1. 接收请求:程序首先需要接收用户发送的请求。这可以通过网络、接口或其他方式进行接收,例如HTTP请求。 2. 解析请求:程序接收到请求后,需要对请求进行解析。这包括解析请求的格式、协议和参数等。解析后的请求可以方便程序对请求做进一步的处理。 3. 路由请求:解析后的请求可能需要经过路由器来确定该请求应该由哪个处理程序或功能模块来处理。路由器会根据请求的URL或其他标识符分发请求。 4. 执行处理逻辑:根据路由器的路由结果,程序会调用相应的处理程序来执行相关的处理逻辑。这可能涉及到读取数据库、调用API、计算等一系列操作。 5. 处理响应:在执行处理逻辑之后,程序会根据处理结果生成响应。这包括响应的格式、内容以及状态码等。响应可能包含数据、错误信息或其他需要返回给用户的内容。 6. 发送响应:生成响应后,程序将通过网络或接口等方式将响应发送给用户。 7. 清理资源:程序在完成请求处理后,可能需要进行清理工作,例如关闭数据库连接、释放内存等。 8. 记录日志:为了追踪和排查问题,在请求处理过程中,程序可以记录相关的日志信息。这些信息可以帮助开发人员分析和解决问题。 9. 记录统计:程序还可以记录请求的统计信息,例如请求的数量、处理时间等,用于性能优化和系统监控。 以上是一个用户请求如何经过程序处理的简要描述,每个步骤都可能会有更复杂的细节和具体的实现方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值