问题描述
我需要通过 HTTP-Rest 接口与设备通信。 我无法主动创建与此设备的连接。 该设备正在使用我的程序创建 TCP 套接字。因此,我正在侦听此设备的端口。 创建套接字后,我需要在该套接字之上向该设备发送 HTTP 请求。我充当 HTTP 客户端,设备充当 HTTP 服务器。 我不能为此使用 WebClient,因为它创建了自己的 TCP-Socket。但是我所说的套接字已经创建。 我的第一个问题是:是否还有一种方法可以使用 WebClient 或其他替代方法来创建 HTTP 请求并读出响应?
如果我不能使用Webclient,我需要自己实现它。 我看到可以使用 WebClient 创建 HTTP 标头字节:
void SendHTTPRequest(string message)
{
//create Header Bytes
WebClient web = new WebClient();
web.Headers.Set(HttpRequestHeader.Connection,"keep-alive");
web.Headers.Set(HttpRequestHeader.Accept,"*/*");
web.Headers.Set(HttpRequestHeader.AcceptEncoding,"gzip,deflate,br");
//Built list with request bytes
List<byte> bytesToSend = new List<byte>();
bytesToSend.AddRange(Encoding.ASCII.GetBytes(message));
bytesToSend.AddRange(web.Headers.ToByteArray());
//Send request to the device
WriteBytes(bytesToSend.ToArray());
}
我的第二个问题是:有没有办法从响应中接收到的字节中解码 HTTP 标头?这样我只需要实现HTTP-Body的write和read方法即可。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)