如何获取HTTP请求响应问号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取HTTP请求响应问号相关的知识,希望对你有一定的参考价值。

参考技术A HTTP请求方式有两种,一种是GET方式,请求参数会用“?”作为分隔符跟在请求资源后面;另一种是POST方式,请求参数放在了最后面的位置。
  服务器监听到浏览器的链接,首先将HTTP请求信息保存下来,再进行解析。
// 请求信息的输入流
private InputStream input;

//获得HTTP请求信息,并解析出请求使用的是GET还是POST,然后调用相应的处理方法进行处理

public void parseInput()
byte [] b = new byte[1024];
try
input.read(b);
catch (IOException e)
LogInfo.error("读取请求信息出错"+e.getMessage());
return;本回答被提问者采纳

如何从 WinHttp 请求中获取 HTTP 状态码?

【中文标题】如何从 WinHttp 请求中获取 HTTP 状态码?【英文标题】:How to get HTTP status code from WinHttp request? 【发布时间】:2014-07-17 09:12:23 【问题描述】:

This page on msdn 包含可能在 WinHTTP 中使用的 HTTP 状态代码的定义。有没有办法从 WinHttp 中发出的请求中检索 HTTP 状态码?

我发现获取响应文本的唯一方法是调用WinHttpQueryHeaders,它会返回如下 HTTP 响应:

HTTP/1.1 404 Not Found
Date: Wed, 28 May 2014 08:20:29 GMT
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0

我必须自己解析这个字符串来获取状态码,还是 WinHttp 已经提供了一些方法来做到这一点?

【问题讨论】:

【参考方案1】:

使用它来读取 http 状态码(hRequest - 请求的句柄)。

DWORD dwStatusCode = 0;
DWORD dwSize = sizeof(dwStatusCode);

WinHttpQueryHeaders(hRequest, 
    WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, 
    WINHTTP_HEADER_NAME_BY_INDEX, 
    &dwStatusCode, &dwSize, WINHTTP_NO_HEADER_INDEX);

【讨论】:

以上是关于如何获取HTTP请求响应问号的主要内容,如果未能解决你的问题,请参考以下文章

如何获取完整的HTTP请求(不是响应)标头

如何从 WinHttp 请求中获取 HTTP 状态码?

如何才能获取到http的响应状态码

如何在 weblogic 服务器上获取请求-响应日志

如何使用 requests 库从 http 请求中获取 IP 地址?

如何在 HTTP 403 响应中获取自定义错误响应文本