首页 新闻 搜索 专区 学院

设备发送一个http post请求,接收不到

0
悬赏园豆:40 [已解决问题] 解决于 2020-09-29 16:58

POST /LAPI/V1.0/PACS/Controller/HeartReportInfo HTTP/1.1
Content-Type: application/json
Content-Length: 180

{
"RefId": "3d519d30-af08-4654-919f-3488a9ef9b68",
"Time": "2020-05-26 16:08:54",
"NextTime": "2020-05-26 16:09:24",
"DeviceCode": "13110201011197001001",
"DeviceType": 5
}

这是设备发送的整个请求的内容,我写了一个对应的接口去接收,完全接收不到, 用postman测试我的接口,没有问题.
接口用.net core 写的

[Route("LAPI/V1.0/PACS/[controller]/[action]")]
[ApiController]
public class ControllerController : ControllerBase
{
[HttpGet]
[HttpPost]
public string HeartReportInfo()
{
StreamReader sr = new StreamReader(Request.Body);

        Task<string> task = sr.ReadToEndAsync();
        if(task.Result!=null)
        {
            Console.WriteLine(task.Result);
        }
        else
        {
            Console.WriteLine("数据为空");
        }

        return "ok";
    }

}
百鸟朝凤的主页 百鸟朝凤 | 初学一级 | 园豆:100
提问于:2020-05-26 17:06
< >
分享
最佳答案
0

设备发送到HTTP中的host头部呢?是你调试的进程的IP和端口吗?

收获园豆:20
Timetombs | 老鸟四级 |园豆:3754 | 2020-05-27 08:28

他没有host头…就这么两行,我也不知道该咋接收了,我这信息是通过socket接回来的

百鸟朝凤 | 园豆:100 (初学一级) | 2020-05-27 08:43

@百鸟朝凤: 那就奇怪了,没有host头的话就不是一个正常的HTTP请求。你这个HTTP请求从哪得来的?设备打印的log?还是你在本机抓包的结果?

Timetombs | 园豆:3754 (老鸟四级) | 2020-05-27 08:45

@blackheart: 我写了一个tcp socket,然后把接收的信息打印,就是这些东西。

百鸟朝凤 | 园豆:100 (初学一级) | 2020-05-27 08:47

@百鸟朝凤: 那就进一步抓包看一下吧(tcpdump或者Wireshark),看看原始的请求的信息是什么,也可以核对下ip和端口。

Timetombs | 园豆:3754 (老鸟四级) | 2020-05-27 08:49

@blackheart: 嗯,我再试试不行的话,我就当是个socket连接,去解析他的内容

百鸟朝凤 | 园豆:100 (初学一级) | 2020-05-27 08:50
其他回答(2)
0

public string HeartReportInfo([FromBody] dynamic Postdata)
{
string Id = Postdata["Id"];获取Id
}

把Id改成你传的参数,core接受body里面的值是要加FromBody

收获园豆:20
尚公子 | 园豆:230 (菜鸟二级) | 2020-05-26 18:40

还没有到这一步呢,现在是这个请求,我的接口根本接收不到。
获取内容,它是整个body体是一个json串发送过来的,我这种写法只是为了看接收的内容是什么

支持(0) 反对(0) 百鸟朝凤 | 园豆:100 (初学一级) | 2020-05-26 18:43

@百鸟朝凤:

   using (var reader = new StreamReader(Request.Body))
    {

            var body = await reader.ReadToEndAsync();
    }

那试试这种写法

支持(0) 反对(0) 尚公子 | 园豆:230 (菜鸟二级) | 2020-05-26 18:46

@尚公子: 不是写法的问题,现在是调试的时候根本不走这个方法

支持(0) 反对(0) 百鸟朝凤 | 园豆:100 (初学一级) | 2020-05-26 18:48
0

这是java写的netty....

百鸟朝凤 | 园豆:100 (初学一级) | 2020-09-29 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册